diff --git a/clamav-devel/ChangeLog b/clamav-devel/ChangeLog index e9b51f5ac..5863069a2 100644 --- a/clamav-devel/ChangeLog +++ b/clamav-devel/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 15 21:55:25 CET 2005 (tk) +--------------------------------- + * libclamav/zziplib: improve handling of multi-part/broken zip archives + Test files provided by Tomasz Papszun + Tue Nov 15 20:54:27 CET 2005 (tk) --------------------------------- * clamscan/treewalk.c: --exclude-dir was taking bad arguments when used diff --git a/clamav-devel/libclamav/zziplib/zzip-zip.c b/clamav-devel/libclamav/zziplib/zzip-zip.c index 8f7f7680c..a6f217556 100644 --- a/clamav-devel/libclamav/zziplib/zzip-zip.c +++ b/clamav-devel/libclamav/zziplib/zzip-zip.c @@ -387,8 +387,13 @@ __zzip_parse_root_directory(int fd, return ZZIP_DIR_SEEK; } if (io->read(fd, &dirent, sizeof(dirent)) < __sizeof(dirent)) { - free(hdr0); - return ZZIP_DIR_READ; + if(entries != u_entries) { + entries = 0; + break; + } else { + free(hdr0); + return ZZIP_DIR_READ; + } } d = &dirent; }