>Submitter-Id: current-users
>Originator: Andy Gilligan
>Confidential: no
>Synopsis: [PATCH] ipfw2 fails with 'bad command' error
>Severity: serious
>Priority: high
>Category: bin
>Class: sw-bug
>Release: FreeBSD 4.8-STABLE i386
>Environment:
System: FreeBSD vega 4.8-STABLE FreeBSD 4.8-STABLE #13: Sun Jul 20 01:01:07 BST
2003 root@vega:/usr/obj/usr/src/sys/VEGA i386
>Description:
When using a program to preprocess rules, /sbin/ipfw will
fail with a 'bad command' error if those rules contain any
pipe or queue definitions.
This only affects IPFW2.
>How-To-Repeat:
Create /etc/ipfw.rules containing:
pipe 1 config bw 500kbit/s
add pipe 1 all from any to any
Then execute:
# ipfw -p cat /etc/ipfw.rules
command is cat
Line 2: bad command `pipe'
Using any preprocessor that generates those rules will
give the same error.
>Fix:
Correctly initialise the 'do_pipe' variable in ipfw_main()
Index: sbin/ipfw/ipfw2.c
==================================================================RCS file:
/data/cvs/freebsd/src/sbin/ipfw/ipfw2.c,v
retrieving revision 1.4.2.16
diff -u -r1.4.2.16 ipfw2.c
--- sbin/ipfw/ipfw2.c 17 Jul 2003 06:03:39 -0000 1.4.2.16
+++ sbin/ipfw/ipfw2.c 20 Jul 2003 04:51:28 -0000
@@ -3591,6 +3591,7 @@
char **av, **save_av;
int do_acct = 0; /* Show packet/byte count */
int do_force = 0; /* Don't ask for confirmation */
+ do_pipe = 0;
#define WHITESP " \t\f\v\n\r"
if (oldac == 0)