[radvd-devel-l] if reconnect ethernet link, radvd will fall in Segmentation fault

JungHwan Kim iz4dev at gmail.com
Sun Sep 12 22:04:28 EDT 2010


Hello, every one.

First. I'm not good at English. You may not be able to understand my email.
It is regret. I hope that you understand in my opinion.
and My E-mail was not deliveried for anyone, so i re-send my E-mail.

I am using radvd-1.6 that is download CVS lastest version. (Revision 1.98)
and # ./configure and # Make

and start radvd this configure.

/-------------------------------------------------------
interface eth9
{ IgnoreIfMissing on; AdvSendAdvert on; MinRtrAdvInterval 3;
 MaxRtrAdvInterval 10; AdvDefaultPreference high;
clients { fe80::225:ff:fe3d:fe0c; fe80::a00:27ff:fef2:f6f0;
 fe80::a00:27ff:fe7c:5414; };
};

interface eth7
{ AdvSendAdvert on; MinRtrAdvInterval 3;
 MaxRtrAdvInterval 10; };
--------------------------------------------------------/

when radvd is running, I disconnect eth9's ethernet Line,
and reconnect eth9's ethernet Line.

Then I found the following programe logic Segmentation fault.



GNU gdb Red Hat Linux (6.6-8.fc7rh)
Copyright (C) 2006 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 "i386-redhat-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) set args -d 5 -C /etc/radvd.conf
(gdb) run
Starting program: /radvd -d 5 -C /etc/radvd.conf

--------------------- disconnect and reconnect ---------------------------

Program received signal SIGSEGV, Segmentation fault.

0x0804bcf5 in alarm_handler (sig=14) at timer.c:152

warning: Source file is more recent than executable.

152                     tm->prev->next = tm->next;

(gdb) where

#0  0x0804bcf5 in alarm_handler (sig=14) at timer.c:152

#1  <signal handler called>

#2  0xffffe410 in __kernel_vsyscall ()

#3  0x4182065d in ___newselect_nocancel () from /lib/libc.so.6

#4  0x08049fcd in recv_rs_ra (sock=7, msg=0xbfe20538 "\206",
addr=0xbfe20404,
    pkt_info=0xbfe20400, hoplimit=0xbfe20420) at recv.c:46

#5  0x0804ad31 in main (argc=5, argv=0xbfe20be4) at radvd.c:313

(gdb) p tm

$1 = (struct timer_lst *) 0x805ed4c
(gdb) p tm->next
$2 = (struct timer_lst *) 0x0
(gdb) p tm->prev
$3 = (struct timer_lst *) 0x0
(gdb) p *tm
$4 = {expires = {tv_sec = 0, tv_usec = 0}, handler = 0, data = 0x0,
  next = 0x0, prev = 0x0}
(gdb) list
147              */
148
149             /* unused timers are initialized to LONG_MAX so we skip them
*/
150             while (tm->expires.tv_sec != LONG_MAX && check_time_diff(tm,
tv)
151             {
152                     tm->prev->next = tm->next;
153                     tm->next->prev = tm->prev;
154
155                     back = tm;
156                     tm = tm->next;
(gdb) quit
The program is running.  Exit anyway? (y or n) y


if i will use that configure, i will not meet Segmentation fault.

/-------------------------------------------------------
interface eth9
{ IgnoreIfMissing on; AdvSendAdvert on; MinRtrAdvInterval 3;
 MaxRtrAdvInterval 10; AdvDefaultPreference high;
clients { fe80::225:ff:fe3d:fe0c; fe80::a00:27ff:fef2:f6f0;
 fe80::a00:27ff:fe7c:5414; };
};
-------------------------------------------------------/


Thank, for reading.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litech.org/pipermail/radvd-devel-l/attachments/20100913/80708ca2/attachment.html>


More information about the radvd-devel-l mailing list