[Click] IPFragmenter bug (click-1.4.3)

Beyers Cronje bcronje at gmail.com
Sat Jun 17 13:44:16 EDT 2006


Alfeiks,

You need to set the IP Header annotation before the fragmenter. See
MarkIPHeader or CheckIPHeader. Also you probably need a Classifier before to
only send valid IP packets from FromDevice.

Beyers

On 6/16/06, Alfeiks Kaanoken <kaanoken at tepkom.ru> wrote:
>
> 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.
>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>


More information about the click mailing list