Fwd: 5.2-RC + ipfw
Maxim Konovalov
maxim at macomnet.ru
Sat Dec 13 10:47:10 PST 2003
[ CC: Luigi ]
On Sat, 13 Dec 2003, 11:49-0000, Nate Grey wrote:
> Hello,
>
> on 5.2-RC I get this error from ipfw:
>
> ipfw in free(): error: modified (chunk -) pointer
> Aboirt trap (core dumped)
>
> examining my firewall script I noticed that error occurs when ipfw try to
> load this rules
>
> fwcmd="/sbin/ipfw -q/"
> ${fwcmd} add 310 set 1 deny ip from $bad_guys to any in recv ep0
> ${fwcmd} add 310 set 2 deny ip from any to $bad_guys out via ep0
>
> badguys are:
>
> bad_guys="(\
> 127.0.0.0/8 or \
> 192.168.0.1/16 or \
> 10.0.0.0/8 or \
> 172.16.0.0/12 or \
> 0.0.0.0/8 or \
> 169.254.0.0/16 or \
> 192.0.2.0/24 or \
> 224.0.0.0/4 \
> )"
>
> anyway, according to `ipfw sh` output the rules are loaded.
Please try an enclosed patch or put a whitespace right after the '('
before '\'.
Index: ipfw2.c
===================================================================
RCS file: /home/ncvs/src/sbin/ipfw/ipfw2.c,v
retrieving revision 1.42
diff -u -r1.42 ipfw2.c
--- ipfw2.c 31 Oct 2003 18:31:55 -0000 1.42
+++ ipfw2.c 13 Dec 2003 18:42:18 -0000
@@ -2901,15 +2901,14 @@
goto done;
#define OR_START(target) \
- if (ac && (*av[0] == '(' || *av[0] == '{')) { \
+ if (ac && ( \
+ !strncmp(*av, "(", strlen(*av)) || \
+ !strncmp(*av, "{", strlen(*av)) )) { \
if (open_par) \
errx(EX_USAGE, "nested \"(\" not allowed\n"); \
prev = NULL; \
open_par = 1; \
- if ( (av[0])[1] == '\0') { \
- ac--; av++; \
- } else \
- (*av)++; \
+ ac--; av++; \
} \
target: \
%%%
--
Maxim Konovalov, maxim at macomnet.ru, maxim at FreeBSD.org
More information about the freebsd-net
mailing list