- file_read(fd, &data, sizeof(struct SZIPFileHeader));
-
- // EDIT: Check if this is a zip file without worrying about endian
- // It checks for the following: 0x50 0x4B 0x03 0x04 (PK..)
- // Used to be: if(data.Sig != 0x04034b50) break;
- if( data.Sig[0] != 0x50 || data.Sig[1] != 0x4B ||
- data.Sig[2] != 0x03 || data.Sig[3] != 0x04 )
- {
- goto outcode;
- }
-
- file_read(fd, tmp, data.FilenameLength);
+ ret = file_read(fd, &data, sizeof(data));
+ if (ret != sizeof(data))
+ break;
+
+ // It checks for the following: 0x50 0x4B 0x03 0x04 (PK..)
+ if( data.Sig[0] != 0x50 || data.Sig[1] != 0x4B ||
+ data.Sig[2] != 0x03 || data.Sig[3] != 0x04 )
+ {
+ break;
+ }
+
+ ret = file_read(fd, tmp, data.FilenameLength);
+ if (ret != data.FilenameLength)
+ break;
+