matcher: fix issue where filetyping may be lost

pull/53/merge
Kevin Lin 9 years ago
parent cf5debddf2
commit 91e495f10b
  1. 6
      libclamav/matcher.c

@ -109,7 +109,7 @@ static inline int matcher_run(const struct cli_matcher *root,
struct cli_pcre_off *poffdata,
cli_ctx *ctx)
{
int ret;
int ret, saved_ret = CL_CLEAN;
int32_t pos = 0;
struct filter_match_info info;
uint32_t orig_length, orig_offset;
@ -173,7 +173,7 @@ static inline int matcher_run(const struct cli_matcher *root,
return ret;
}
} else if (ret > CL_TYPENO && acmode & AC_SCAN_VIR)
; /* intentionally empty */
saved_ret = ret;
else
return ret;
}
@ -231,6 +231,8 @@ static inline int matcher_run(const struct cli_matcher *root,
if (ctx && SCAN_ALL && viruses_found)
return CL_VIRUS;
if (saved_ret && ret == CL_CLEAN)
return saved_ret;
return ret;
}

Loading…
Cancel
Save