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

Reply via email to