cvs current with SIGSEGV; how to track down
Kevin Bonner
keb at pa.net
Thu Jun 2 20:35:38 CEST 2005
On Wednesday 01 June 2005 18:56, Alan DeKok wrote:
> Kevin Bonner <keb at pa.net> wrote:
> > The proxy listener has several pointers that are never set, as shown by
> > your gdb print above.
>
> Whoops... that as a dumb mistake.
>
> I've committed a fix which should initialize those pointers.
>
> Thanks.
>
> Alan DeKok
Alan,
The fix looks good, but radiusd still segfaults at radiusd.c:735 because the
proxy update function is NULL.
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x0804e709 in main (argc=2, argv=0xfef163f0) at radiusd.c:735
(gdb) frame 1
#1 0x0804e709 in main (argc=2, argv=0xfef163f0) at radiusd.c:735
735 next = listener->update(listener, time_now);
(gdb) print *listener
$1 = {next = 0x0, type = RAD_LISTEN_PROXY, fd = 8, identity = 0x0, rl = 0x0,
recv = 0x805f098 <proxy_socket_recv>, send = 0x805ecf8 <proxy_socket_send>,
update = 0,
print = 0x805eb34 <socket_print>, data = 0x883d0f0}
Here is a patch which should resolve this problem.
==cut here==
diff -u -r1.347 radiusd.c
--- radiusd.c 27 May 2005 21:19:57 -0000 1.347
+++ radiusd.c 2 Jun 2005 17:14:17 -0000
@@ -732,7 +732,9 @@
listener = listener->next) {
int next;
- next = listener->update(listener, time_now);
+ next = (listener->update != NULL) ?
+ listener->update(listener, time_now) :
+ SLEEP_FOREVER;
if (next < sleep_time) {
sleep_time = next;
}
==cut here==
Kevin Bonner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.freeradius.org/pipermail/freeradius-devel/attachments/20050602/1cda10b0/attachment.pgp>
More information about the Freeradius-Devel
mailing list