Browse code

libclamav/matcher.c: fix stack smash with HandlerType (bb#2298)

Tomasz Kojm authored on 2010/10/18 22:53:21
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Mon Oct 18 15:52:47 CEST 2010 (tk)
2
+----------------------------------
3
+ * libclamav/matcher.c: fix stack smash with HandlerType (bb#2298)
4
+
1 5
 Mon Oct 18 11:30:01 CEST 2010 (tk)
2 6
 ----------------------------------
3 7
  * clamdscan: fix name parsing in normal mode (bb#2328)
... ...
@@ -532,8 +532,12 @@ int cli_lsig_eval(cli_ctx *ctx, struct cli_matcher *root, struct cli_ac_data *ac
532 532
 	    }
533 533
 
534 534
 	    if(root->ac_lsigtable[i]->tdb.handlertype) {
535
-		if(cli_magic_scandesc_type(map->fd, ctx, root->ac_lsigtable[i]->tdb.handlertype[0]) == CL_VIRUS)
535
+		ctx->recursion++;
536
+		if(cli_magic_scandesc_type(map->fd, ctx, root->ac_lsigtable[i]->tdb.handlertype[0]) == CL_VIRUS) {
537
+		    ctx->recursion--;
536 538
 		    return CL_VIRUS;
539
+		}
540
+		ctx->recursion--;
537 541
 		continue;
538 542
 	    }
539 543