Date: Mon, 19 Jan 1998 07:39:35 -0700 (MST) From: Steve Bauer <sbauer@hardrock.sdsmt.edu> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: kern/5522: ip_input.c & ip_output.c problems when trying to use ipfilter Message-ID: <199801191439.HAA02099@hardrock.sdsmt.edu>
next in thread | raw e-mail | index | archive | help
>Number: 5522
>Category: kern
>Synopsis: ip_input.c & ip_output.c problems when trying to use ipfilter
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jan 19 06:40:01 PST 1998
>Last-Modified:
>Originator: Steve Bauer
>Organization:
South Dakota School of Mines and Technology
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
The environment is FreeBSD 3.0-CURRENT that was cvsup'd at 7:15AM MST
(14:15 GMT).
machine: Gateway NS 7000
Num cpus: 2
cpu type: Pentium II 300
ram: 64MB
Netcard: Adaptec Cogent Quartet ANA-6944/TX
HD Interface: Adaptec Fast & Wide SCSI built on to motherboard (aic7880)
HD: IBM DCAS-34330W 4.1 GB
Video: Cirrus Logic GD5430
>Description:
The problem is that when the options IPFILTER_LKM and IPFILTER_LOG
as specified in the kernel config file and the resulting kernel built. One
gets the following error message:
ip_input.o: undefined symbol fr_check
After examining the problem with ip_input.c, I also check the other places
that IPFILTER was defined and have found a couple more errors.
>How-To-Repeat:
Try to build the kernel with the following options:
options IPFILTER_LKM
options IPFILTER_LOG
>Fix:
Below are the fixes to ip_input.c and ip.output.c
*** ip_input.c.orig Mon Jan 19 07:19:35 1998
--- ip_input.c Mon Jan 19 07:19:58 1998
***************
*** 147,153 ****
#endif
#if defined(IPFILTER_LKM) || defined(IPFILTER)
- int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf **));
int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf **)) = NULL;
#endif
--- 147,152 ----
***************
*** 341,347 ****
* Check if we want to allow this packet to be processed.
* Consider it to be bad if not.
*/
! if (fr_check) {
struct mbuf *m1 = m;
if ((*fr_checkp)(ip, hlen, m->m_pkthdr.rcvif, 0, &m1) || !m1)
--- 340,346 ----
* Check if we want to allow this packet to be processed.
* Consider it to be bad if not.
*/
! if (fr_checkp) {
struct mbuf *m1 = m;
if ((*fr_checkp)(ip, hlen, m->m_pkthdr.rcvif, 0, &m1) || !m1)
*** ip_output.c.orig Mon Jan 19 07:16:08 1998
--- ip_output.c Mon Jan 19 07:16:36 1998
***************
*** 83,89 ****
#if defined(IPFILTER_LKM) || defined(IPFILTER)
int ip_optcopy __P((struct ip *, struct ip *));
- extern int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf **));
extern int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf **));
#else
static int ip_optcopy __P((struct ip *, struct ip *));
--- 83,88 ----
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801191439.HAA02099>
