Mitchell, Michael wrote:
> I'm currently testing freeradius-snapshot-20020114 (configured as a proxy
> only) on Solaris 8 and running into a problem.
I'm seeing similar crashes with my patched 2002-02-11 version on Solaris
7.
----
#0 0x19510 in proxy_send (request=0x1b13250) at proxy.c:398
398 request->proxy->timestamp = request->timestamp - (delaypair ?
delaypair->lvalue : 0);
(gdb) p delaypair
$1 = (VALUE_PAIR *) 0x3c7244b9
(gdb) p *request
$2 = {magic = 16909060, packet = 0x0, proxy = 0x0, reply = 0x0, proxy_reply = 0x0,
config_items = 0x0,
username = 0x2047108, password = 0x0, secret = "xxxxxxxxx", '\000' <repeats 22
times>, child_pid = 0,
timestamp = 1014121657, number = 61812, proxysecret =
"xxxxxxx\000\000xxxxx\000xxxxxxxxxxxxxxxxx",
proxy_is_replicate = 0, proxy_try_count = 7, proxy_next_try = 1014121662, simul_max
= 0,
simul_count = 0, simul_mpp = 0, finished = 1, options = 0, container = 0x41b20}
(gdb) bt
#0 0x19510 in proxy_send (request=0x1b13250) at proxy.c:398
#1 0x15a24 in rad_respond (request=0x1b13250, fun=0x17838 <rad_accounting>) at
radiusd.c:1521
#2 0x1fe60 in request_handler_thread (arg=0xa7bc0) at threads.c:169
Hmm, why is request->proxy == NULL? It is malloced in proxy_send() and
never reset. rad_send(), whichis called a few lines before the crash
doesn't seem to modify it too (well, actually it cant't, as it doesn't
get a pointer to the pointer)
----
#0 0x19530 in proxy_send (request=0xa00218) at proxy.c:403
403 if ( mainconfig.log_proxy_nonauth || (request->packet->code ==
PW_AUTHENTICATION_REQUEST)) {
(gdb) bt
#0 0x19530 in proxy_send (request=0xa00218) at proxy.c:403
#1 0x15a24 in rad_respond (request=0xa00218, fun=0x17838 <rad_accounting>) at
radiusd.c:1521
#2 0x1fe60 in request_handler_thread (arg=0x4b8130) at threads.c:169
(gdb) p mainconfig
$1 = {log_auth = 1, log_auth_badpass = 1, log_auth_goodpass = 1, do_usercollide = 0,
log_proxy = 1,
log_proxy_retransmit = 1, log_proxy_nonauth = 0, do_lower_user = 0x9d208 "no",
do_lower_pass = 0x9d218 "no", do_nospace_user = 0x9d228 "no", do_nospace_pass =
0x9d238 "no",
nospace_time = 0x0}
(gdb) p *request
$2 = {magic = 0, packet = 0x0, proxy = 0x129030, reply = 0x0, proxy_reply = 0x9fec48,
config_items = 0x0,
username = 0x0, password = 0x0, secret = "xxxxxxx", '\000' <repeats 24 times>,
child_pid = 0,
timestamp = 1014136041, number = 25277,
proxysecret = "xxxxxxxxxxx\000xxxxxxxxxxx\000\000\000\000\000xxxx",
proxy_is_replicate = 0,
proxy_try_count = 7, proxy_next_try = 1014136046, simul_max = 0, simul_count = 0,
simul_mpp = 0,
finished = 1, options = 10486288, container = 0x41790}
Ok, this happens in code I've added. But shouldn't request->packet
always be non-NULL? Well and it was already used successfully in
proxy_send a few lines before.
I've seen the suggestion of running radiusd with -s. What side effects
do I have to expect?
Rainer
--
KeyID=759975BD fingerprint=887A 4BE3 6AB7 EE3C 4AE0 B0E1 0556 E25A 7599 75BD
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html