netfilter 0.1.8 & kernel 2.3.18

Paul Rusty Russell Paul.Russell@rustcorp.com.au
Tue, 21 Sep 1999 01:26:14 +0930


In message <37E34DC1.F18F6A03@terranet.lu> you write:
> Hi,
> 
> using kernel 2.3.18 and 0.1.8 I get an unresolved symbol memset in
> module ip_nat.o.
> It seems that it also works for some people. Am I doing somthing wrong
> or is this a known bug ?

Hmmmm.... Let me guess, gcc 2.7.x?  It seems to do this which a
structure constructor expression is incomplete.  Unfortunately, I
can't reproduce this here...

Could you first try a `make clean all' in the netfilter directory to
be sure that it's not some wierd miscompilation.

Then could you go into the NAT subdirectory, and tell me which .o
files list `memcpy' in the results of `nm --undefined-only'.  I
suspect the files ip_nat_rule.o and ip_nat_core.o, so try 
`nm --undefined-only ip_nat_rule.o' and `nm --undefined-only ip_nat_core.o'
first.

If this is the case, then try commenting out one of the following
three bits of code, recompiling (you might get warnings, and NAT won't
WORK, but we'll figure out which one it is):

ip_nat_core.c:355:
			*tuple = ((struct ip_conntrack_tuple)
				  { *manip, orig_tuple->dst });

ip_nat_rule.c:134:
			**rule = ((struct ip_nat_rule){ { NULL, NULL },
                        ...
					{ 1+extra_range, { user->range } } });

ip_nat_rule.c:203:
			expect_rule->rule = ((struct ip_nat_rule) 
                        ...
			       } });

Thanks!
Rusty.
--
Hacking time.