Browse code

improve handling of multi-part/broken zip archives

git-svn: trunk@1760

Tomasz Kojm authored on 2005/11/16 05:58:42
Showing 2 changed files
... ...
@@ -1,3 +1,8 @@
1
+Tue Nov 15 21:55:25 CET 2005 (tk)
2
+---------------------------------
3
+  * libclamav/zziplib: improve handling of multi-part/broken zip archives
4
+		       Test files provided by Tomasz Papszun
5
+
1 6
 Tue Nov 15 20:54:27 CET 2005 (tk)
2 7
 ---------------------------------
3 8
   * clamscan/treewalk.c: --exclude-dir was taking bad arguments when used
... ...
@@ -387,8 +387,13 @@ __zzip_parse_root_directory(int fd,
387 387
                 return ZZIP_DIR_SEEK;
388 388
 	    }
389 389
             if (io->read(fd, &dirent, sizeof(dirent)) < __sizeof(dirent)) {
390
-		free(hdr0);
391
-                return ZZIP_DIR_READ;
390
+		if(entries != u_entries) {
391
+		    entries = 0;
392
+		    break;
393
+		} else {
394
+		    free(hdr0);
395
+		    return ZZIP_DIR_READ;
396
+		}
392 397
 	    }
393 398
             d = &dirent;
394 399
         }