From 887e433ee20cc52b06600ea7e91d6cc0360c943c Mon Sep 17 00:00:00 2001 From: provos Date: Tue, 25 Mar 2003 22:48:42 +0000 Subject: [PATCH] bug in profile feedback optimization; found by dirt@monkey --- bin/systrace/filter.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/systrace/filter.c b/bin/systrace/filter.c index 8034758e52f0..506c2bc2fb47 100644 --- a/bin/systrace/filter.c +++ b/bin/systrace/filter.c @@ -1,4 +1,4 @@ -/* $NetBSD: filter.c,v 1.15 2002/11/25 06:25:09 provos Exp $ */ +/* $NetBSD: filter.c,v 1.16 2003/03/25 22:48:43 provos Exp $ */ /* $OpenBSD: filter.c,v 1.16 2002/08/08 21:18:20 provos Exp $ */ /* * Copyright 2002 Niels Provos @@ -30,7 +30,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include -__RCSID("$NetBSD: filter.c,v 1.15 2002/11/25 06:25:09 provos Exp $"); +__RCSID("$NetBSD: filter.c,v 1.16 2003/03/25 22:48:43 provos Exp $"); #include #include @@ -167,6 +167,7 @@ filter_evaluate(struct intercept_tlq *tls, struct filterq *fls, /* Profile feedback optimization */ filter->match_count++; if (last != NULL && last->match_action == action && + last->match_flags == filter->match_flags && filter->match_count > last->match_count) { TAILQ_REMOVE(fls, last, next); TAILQ_INSERT_AFTER(fls, filter, last, next);