Procházet zdrojové kódy

zip: Safety check to avoid overrunning the extra field.

Ryan C. Gordon před 1 týdnem
rodič
revize
060373ee8e
1 změnil soubory, kde provedl 1 přidání a 0 odebrání
  1. 1 0
      src/physfs_archiver_zip.c

+ 1 - 0
src/physfs_archiver_zip.c

@@ -1092,6 +1092,7 @@ static ZIPentry *zip_load_entry(ZIPinfo *info, const int zip64,
         {
             BAIL_IF_ERRPASS(!readui16(io, &sig), NULL);
             BAIL_IF_ERRPASS(!readui16(io, &len), NULL);
+            BAIL_IF(extralen < (4 + len), PHYSFS_ERR_CORRUPT, NULL);
 
             si64 += 4 + len;
             extralen -= 4 + len;