[Click] IPFragmenter bug (click-1.4.3)

Alfeiks Kaanoken kaanoken at tepkom.ru
Fri Jun 16 04:31:03 EDT 2006


Hi folks,
Some bug is present in the IPFragmenter.
I don't think that it was fixed up in the new release (I was look to the 
``diff'' between new and old version).
So,
I'm was try the following simple configuration
aka tmp $> cat click.lo
FromDevice(lo) -> IPFragmenter(128) -> Print(ok) -> Discard;
and pinging the lo interface when click is running, and get a segfault.
aka tmp $> gdb click
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you 
are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux"...Using host 
libthread_db libr
ary "/lib/libthread_db.so.1".

"/home/kaanoken/works/tmp/click.lo" is not a core dump: File format not 
recogniz
ed
(gdb) run -f click.lo
Starting program: /usr/local/bin/click -f click.lo

Program received signal SIGSEGV, Segmentation fault.
0x08093f7a in IPFragmenter::fragment (this=0x815b7e8, p_in=0x815e368)
   at ../elements/ip/ipfragmenter.cc:102
/home/kaanoken/works/click-1.4.3/elements/ip/ipfragmenter.cc:102:2653:beg:0x8093 

f7a
(gdb) bt
#0  0x08093f7a in IPFragmenter::fragment (this=0x815b7e8, p_in=0x815e368)
   at ../elements/ip/ipfragmenter.cc:102
#1  0x080d39b5 in FromDevice::selected (this=0x815b6a8) at element.hh:314
#2  0x0810f6b3 in Master::run_selects (this=0x815b3b8, more_tasks=false)
   at ../lib/master.cc:597
#3  0x08103a30 in RouterThread::driver (this=0x815b4a8) at 
routerthread.hh:161
#4  0x080e9c73 in main (argc=3, argv=0xbffff7b4) at master.hh:121

After it I decide to insert some debugging messages and found it -
(gdb) run -f click.lo
The program being debugged has been started already.
Start it from the beginning? (y or n) y
`/usr/local/bin/click' has changed; re-reading symbols.

Starting program: /usr/local/bin/click -f click.lo
DEBUG00, ip_in=0x0

Program received signal SIGSEGV, Segmentation fault.
0x08093f8b in IPFragmenter::fragment (this=0x815b828, p_in=0x815e3a8)
   at ../elements/ip/ipfragmenter.cc:104
/home/kaanoken/works/click-1.4.3/elements/ip/ipfragmenter.cc:104:2703:beg:0x8093 

f8b

It's located in the elements/ip/ipfragmenter.cc on the line 99:
const click_ip *ip_in = p_in->ip_header();
click_chatter("DEBUG00, ip_in=0x%X", ip_in);
We have the ip_in is NULL.

it's really a bad thing,
what are you can said about this?

PS I was trying it on the linux box w/o kernel modules.

Thanx.

-- 
Alfeiks Kaänoken,
UNIX Software Developer.




More information about the click mailing list