NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/47749
The following reply was made to PR kern/47749; it has been noted by GNATS.
From: Darren Reed <darrenr%netbsd.org@localhost>
To: =?ISO-8859-1?Q?Sergio_L=F3pez?= <slp%sinrega.org@localhost>
Cc: gnats-bugs%NetBSD.org@localhost, martin%duskware.de@localhost
Subject: Re: kern/47749
Date: Thu, 29 Aug 2013 23:14:08 +1000
Sergio,
I think that the change should look more like below.
The reason is that when "pass" is restored with "pass = passo",
the old rule from which "passo" belongs to should belong in
fin_fr.
Let me know how you go with testing it.
Cheers,
Darren
Index: fil.c
===================================================================
RCS file: /devel/CVS/IP-Filter/fil.c,v
retrieving revision 2.243.2.164
diff -u -r2.243.2.164 fil.c
--- fil.c 26 Jan 2012 06:03:42 -0000 2.243.2.164
+++ fil.c 29 Aug 2013 12:07:33 -0000
@@ -1952,7 +1952,7 @@
u_32_t pass;
{
int rulen, portcmp, off, skip;
- struct frentry *fr, *fnext;
+ struct frentry *fr, *fnext, *fro;
u_32_t passt, passo;
/*
@@ -2088,6 +2088,7 @@
}
passt = fr->fr_flags;
}
+ fro = fin->fin_fr;
fin->fin_fr = fr;
#ifdef IPFILTER_LOG
@@ -2148,6 +2149,7 @@
ATOMIC_INCL(frstats[out].fr_ads);
} else {
ATOMIC_INCL(frstats[out].fr_bads);
+ fin->fin_fr = fro;
pass = passo;
continue;
}
Home |
Main Index |
Thread Index |
Old Index