int len2;
*totallen = 0;
+ *filepos = 0;
+ *name = 0;
/* chunk name */
- zfile_fread (tmp, 1, 4, f);
+ if (zfile_fread(tmp, 1, 4, f) != 4)
+ return NULL;
tmp[4] = 0;
au_copy (name, 5, (char*)tmp);
/* chunk size */
- zfile_fread (tmp, 1, 4, f);
+ if (zfile_fread(tmp, 1, 4, f) != 4) {
+ *name = 0;
+ return NULL;
+ }
src = tmp;
len2 = restore_u32 () - 4 - 4 - 4;
if (len2 < 0)
}
/* chunk flags */
- zfile_fread (tmp, 1, 4, f);
+ if (zfile_fread(tmp, 1, 4, f) != 4) {
+ *name = 0;
+ return NULL;
+ }
src = tmp;
flags = restore_u32 ();
*totallen = *len;
write_log (_T("Chunk '%s' total size %d bytes but read %ld bytes!\n"),
name, totallen, end - chunk);
xfree (chunk);
+ if (name[0] == 0)
+ break;
}
target_addtorecent (filename, 0);
return;