iso9660: remove unnecessaty parameter on iso_parse_dir() and reset return code when scanall is in effect.

remotes/push_mirror/klin/altstr-yara
Steven Morgan 10 years ago
parent d010b117bd
commit 7cdb5c7fa6
  1. 12
      libclamav/iso9660.c

@ -115,7 +115,7 @@ static char *iso_string(iso9660_t *iso, const void *src, unsigned int len) {
}
static int iso_parse_dir(iso9660_t *iso, unsigned int block, unsigned int len, unsigned int scanall) {
static int iso_parse_dir(iso9660_t *iso, unsigned int block, unsigned int len) {
cli_ctx *ctx = iso->ctx;
int ret = CL_CLEAN;
int viruses_found = 0;
@ -186,8 +186,9 @@ static int iso_parse_dir(iso9660_t *iso, unsigned int block, unsigned int len, u
ret = cli_matchmeta(ctx, iso->buf, filesz, filesz, 0, 0, 0, NULL);
if (ret == CL_VIRUS) {
viruses_found = 1;
if (!scanall)
if (!SCAN_ALL)
break;
ret = CL_CLEAN;
}
if(dir[26] || dir[27])
@ -195,7 +196,7 @@ static int iso_parse_dir(iso9660_t *iso, unsigned int block, unsigned int len, u
else {
/* TODO Handle multi-extent ? */
if(dir[25] & 2) {
ret = iso_parse_dir(iso, fileoff, filesz, scanall);
ret = iso_parse_dir(iso, fileoff, filesz);
} else {
if(cli_checklimits("ISO9660", ctx, filesz, 0, 0) != CL_SUCCESS)
cli_dbgmsg("iso_parse_dir: Skipping overlimit file\n");
@ -204,8 +205,9 @@ static int iso_parse_dir(iso9660_t *iso, unsigned int block, unsigned int len, u
}
if (ret == CL_VIRUS) {
viruses_found = 1;
if (!scanall)
if (!SCAN_ALL)
break;
ret = CL_CLEAN;
}
}
dirsz -= entrysz;
@ -326,7 +328,7 @@ int cli_scaniso(cli_ctx *ctx, size_t offset) {
i = cli_hashset_init(&iso.dir_blocks, 1024, 80);
if(i != CL_SUCCESS)
return i;
i = iso_parse_dir(&iso, cli_readint32(privol+156+2) + privol[156+1], cli_readint32(privol+156+10), SCAN_ALL);
i = iso_parse_dir(&iso, cli_readint32(privol+156+2) + privol[156+1], cli_readint32(privol+156+10));
cli_hashset_destroy(&iso.dir_blocks);
if(i == CL_BREAK)
return CL_CLEAN;

Loading…
Cancel
Save