Hello
I have segfault at openl2tp 1.8 shutdown.
I can clearly see segfault with new xl2tpd version:
Program terminated with signal 11, Segmentation fault.
#0 0xb7fd7d90 in ?? ()
(gdb) bt
#0 0xb7fd7d90 in ?? ()
#1 0x080817d6 in usl_pid_reap_children (waitfor=1) at usl_pid.c:113
#2 0x080819d9 in usl_sigchld (sig=0) at usl_signal.c:113
#3 0x08050cda in printf (__fmt=0x8083782 "yet supported") at
/usr/include/bits/stdio2.h:104
#4 l2tp_cleanup () at l2tp_main.c:803
#5 l2tp_cleanup () at l2tp_main.c:760
#6 0xb7e86031 in ?? () from /lib/libc.so.6
#7 0xb7e860bd in exit () from /lib/libc.so.6
#8 0x08050bd6 in l2tp_cleanup () at l2tp_main.c:766
#9 0x08081fcb in usl_signal_init () at usl_signal.c:259
#10 0x00000000 in ?? ()
The point is:
./usl/usl_pid.c :
/* If a callback is registered, call it now */
if (have_callback && (child->callback != NULL)) {
(*child->callback)(child->arg, child->pid, sig);
}
But you already have destroyed plugin at this point.
cat altlinux/openl2tp-1.8-cleanup-alt.patch
diff --git a/l2tp_main.c b/l2tp_main.c
index 39f89d2..3136e37 100644
--- a/l2tp_main.c
+++ b/l2tp_main.c
@@ -783,12 +783,12 @@ static void l2tp_cleanup(void)
l2tp_xprt_cleanup();
l2tp_tunnel_cleanup();
l2tp_peer_cleanup();
- l2tp_plugin_cleanup();
usl_timer_cleanup();
usl_fd_cleanup();
usl_signal_cleanup();
usl_pid_cleanup();
+ l2tp_plugin_cleanup();
if (l2tp_rand_fd != 0) {
close(l2tp_rand_fd);
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Openl2tp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openl2tp-users