Date: Wed, 29 Jan 2003 21:29:18 -0800 (PST) From: "Thom O'Connor" <thom@interludium.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/47664: change in ip_output.c in 4.7-STABLE seems to have broken ip_filter 3.4.31 build Message-ID: <200301300529.h0U5TI7M004690@tweedy.interludium.com>
index | next in thread | raw e-mail
>Number: 47664
>Category: kern
>Synopsis: change in ip_output.c in 4.7-STABLE seems to have broken ip_filter 3.4.31 build
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jan 29 21:30:07 PST 2003
>Closed-Date:
>Last-Modified:
>Originator: Charlie &
>Release: FreeBSD 4.7-STABLE i386
>Organization:
Interludium
>Environment:
System: FreeBSD tweedy.interludium.com 4.7-STABLE FreeBSD 4.7-STABLE #1: Wed Jan 29 14:08:30 PST 2003 root@tweedy.interludium.com:/usr/obj/usr/src/sys/TWEEDY i386
>Description:
Hi.
Got a build error building ip_filter 3.4.31, then went back and attempted to build an older version of
ip_filter (3.4.28), that for sure built fine before my cvsup of 4.7-STABLE on 1/28/2003. Nothing appears
to have changed in the ip_filter code for ip_auth.c:
Here is the build error:
<snip>
cc -Wall -Wstrict-prototypes -Wuninitialized -O -g -I../.. -DIPFILTER_LOG -DIPFILTER_LKM -Di386 -D__i386__ -DINET -DKERNEL -D_KERNEL -I/usr/include -I/sys -I/sys/sys -I/sys/arch -DKLD_MODULE -I/sys -c ../../ip_state.c -o ip_state.o
cc -Wall -Wstrict-prototypes -Wuninitialized -O -g -I../.. -DIPFILTER_LOG -DIPFILTER_LKM -Di386 -D__i386__ -DINET -DKERNEL -D_KERNEL -I/usr/include -I/sys -I/sys/sys -I/sys/arch -DKLD_MODULE -I/sys -c ../../ip_proxy.c -o ip_proxy.o
cc -Wall -Wstrict-prototypes -Wuninitialized -O -g -I../.. -DIPFILTER_LOG -DIPFILTER_LKM -Di386 -D__i386__ -DINET -DKERNEL -D_KERNEL -I/usr/include -I/sys -I/sys/sys -I/sys/arch -DKLD_MODULE -I/sys -c ../../ip_auth.c -o ip_auth.o
../../ip_auth.c: In function `fr_auth_ioctl':
../../ip_auth.c:425: too few arguments to function `ip_output'
*** Error code 1
Stop in /usr/local/src/ipfilter/ip_fil3.4.31/BSD/FreeBSD-4.7-STABLE-i386.
*** Error code 1
The ip_auth.c code that appears to be triggering this is:
# if ((_BSDI_VERSION >= 199802) && (_BSDI_VERSION < 200005)) || \
defined(__OpenBSD__) || (defined(IRIX) && (IRIX >= 605))
error = ip_output(m, NULL, &ro, IP_FORWARDING, NULL,
NULL);
# else
error = ip_output(m, NULL, &ro, IP_FORWARDING, NULL);
# endif
It looks to me that the ip_output.c code was changed quite recently. From the /usr/sup file:
C src/sys/netinet/ip_output.c,v RELENG_4 . 2#871#110#10433850946#2584543#444 1.99.2.35 2003.01.24.05.11.34 2#871#110#10438248515#540973#644
And the ip_output function in /usr/src/sys/netinet/ip_output.c seems to match the BSDI version above:
int
ip_output(m0, opt, ro, flags, imo, inp)
Looks like the ip_output.c code might have been suddenly changed, I guess? Perhaps this should really be
an ip_filter bug, I suppose, but it seems odd that older versions would suddenly be broken.
Unfortunately, I can't find a way to retrive an older version of the ip_output.c file to compare the source. But when I change the above ip_auth.c code to this, it does compile:
error = ip_output(m, NULL, &ro, IP_FORWARDING, NULL, NULL);
Good luck, cheers, thanks for all the hard work and great code over the years.
-thom
>How-To-Repeat:
# cvsup 4.7-STABLE (as of 1/28/2003)
# tar xvfz ip-fil3.4.31.tar.gz
# cd ip_fil3.4.31/
# make freebsd4
>Fix:
Probably change ip_auth.c in ip_filter as noted above. However, old versions of ip_filter now broken too.
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301300529.h0U5TI7M004690>
