Mem_Free (buffer);
+ if (
+ eocd->cdir_size < 0 || eocd->cdir_size > filesize ||
+ eocd->cdir_offset < 0 || eocd->cdir_offset >= filesize ||
+ eocd->cdir_offset + eocd->cdir_size > filesize
+ )
+ {
+ // Obviously invalid central directory.
+ return false;
+ }
+
return true;
}