소스 검색

zip: Safety check to avoid overrunning the extra field.

Ryan C. Gordon 1 주 전
부모
커밋
060373ee8e
1개의 변경된 파일1개의 추가작업 그리고 0개의 파일을 삭제
  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;