|
|
|
@ -321,19 +321,21 @@ static int cli_scanzip(int desc, const char **virname, long int *scanned, const |
|
|
|
|
|
|
|
|
|
cli_dbgmsg("Zip: %s, compressed: %u, normal: %u, ratio: %d (max: %d)\n", zdirent.d_name, zdirent.d_csize, zdirent.st_size, zdirent.st_size / (zdirent.d_csize+1), limits ? limits->maxratio : -1 ); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
if(!zdirent.st_size) { |
|
|
|
|
files++; |
|
|
|
|
if(zdirent.d_crc32) { |
|
|
|
|
cli_dbgmsg("Zip: Broken file or modified information in local header part of archive\n"); |
|
|
|
|
*virname = "Suspected.Zip"; |
|
|
|
|
ret = CL_VIRUS; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/* work-around for problematic zips (zziplib crashes with them) */ |
|
|
|
|
if(zdirent.d_csize <= 0 || zdirent.st_size < 0) { |
|
|
|
|
files++; |
|
|
|
|
cli_dbgmsg("Zip: Malformed archive detected.\n"); |
|
|
|
|
/* ret = CL_EMALFZIP; */ |
|
|
|
|
/* report it as a virus */ |
|
|
|
|
*virname = "Suspected.Zip"; |
|
|
|
|
ret = CL_VIRUS; |
|
|
|
|
break; |
|
|
|
|