Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libpcap re-introduce netbsd fix 1.5 -> 1.6, which was mi...



details:   https://anonhg.NetBSD.org/src/rev/54f6bc8d0c7a
branches:  trunk
changeset: 499400:54f6bc8d0c7a
user:      itojun <itojun%NetBSD.org@localhost>
date:      Sun Nov 19 13:18:03 2000 +0000

description:
re-introduce netbsd fix 1.5 -> 1.6, which was mistakenly removed.
pointed by Gui Harris.

---
Fix a hairy optimizer bug that causes the expression:
'ip and ((icmp and dst host 1.1.1.1 and not host 2.2.2.2) or (host 1.1.1.1 and src host 3.3.3.3))'
to compile incorrectly.  Details about to be mailed to LBL.

diffstat:

 lib/libpcap/optimize.c |  9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diffs (44 lines):

diff -r 775a2cc74414 -r 54f6bc8d0c7a lib/libpcap/optimize.c
--- a/lib/libpcap/optimize.c    Sun Nov 19 12:47:51 2000 +0000
+++ b/lib/libpcap/optimize.c    Sun Nov 19 13:18:03 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: optimize.c,v 1.11 2000/10/10 19:12:49 is Exp $ */
+/*     $NetBSD: optimize.c,v 1.12 2000/11/19 13:18:03 itojun Exp $     */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1991, 1993, 1994, 1995, 1996
@@ -28,7 +28,7 @@
 static const char rcsid[] =
     "@(#) Header: optimize.c,v 1.60 96/09/26 23:28:14 leres Exp  (LBL)";
 #else
-__RCSID("$NetBSD: optimize.c,v 1.11 2000/10/10 19:12:49 is Exp $");
+__RCSID("$NetBSD: optimize.c,v 1.12 2000/11/19 13:18:03 itojun Exp $");
 #endif
 #endif
 
@@ -1488,6 +1488,8 @@
 
        init_val();
        maxlevel = root->level;
+
+       find_inedges(root);
        for (i = maxlevel; i >= 0; --i)
                for (p = levels[i]; p; p = p->link)
                        opt_blk(p, do_stmts);
@@ -1505,6 +1507,8 @@
                        opt_j(&p->ef);
                }
        }
+
+       find_inedges(root);
        for (i = 1; i <= maxlevel; ++i) {
                for (p = levels[i]; p; p = p->link) {
                        or_pullup(p);
@@ -1584,7 +1588,6 @@
                find_levels(root);
                find_dom(root);
                find_closure(root);
-               find_inedges(root);
                find_ud(root);
                find_edom(root);
                opt_blks(root, do_stmts);



Home | Main Index | Thread Index | Old Index