Alan DeKok wrote:
> [EMAIL PROTECTED] (Rainer Clasen) wrote:
> > in both cases the only server for a realm was marked dead immediately
> > before the crash.
>
> On further examination, the code in rad_respond() does NOT check for
> errors returned from proxy_send(). So if the request is marked to be
> proxied, and the realm is dead, then something wrong happens.
>
> I'll commit a bug fix now. Grab the CVS snapshot from tonight.
>
> If this fixes your problem, I think we should release 0.5 ASAP.
I've taken the changes from CVS and applied them to my patched version
(only logging enhancements). proxy.c:1.52-1.53, radiusd.c:1.238-1.239.
I got the following backtrace:
#0 0x19590 in proxy_send (request=0x14ea78) at proxy.c:413
413 request->proxy->timestamp = request->timestamp - (delaypair ?
delaypair->lvalue : 0);
(gdb) bt
#0 0x19590 in proxy_send (request=0x14ea78) at proxy.c:413
#1 0x15a24 in rad_respond (request=0x14ea78, fun=0x1784c <rad_accounting>)
at radiusd.c:1528
#2 0x1fea4 in request_handler_thread (arg=0xa8760) at threads.c:169
(gdb) p *request
$1 = {magic = 16909060, packet = 0x0, proxy = 0x0, reply = 0x0, proxy_reply = 0x0,
config_items = 0x0, username = 0xa045a8, password = 0x0,
secret = "xxxxxxxx", '\000' <repeats 23 times>, child_pid = 0, timestamp =
1014224649,
number = 27909,
proxysecret =
"xxxxxxxxx\000\000\000xxxx\000\00xxxxxxx\000\000\004\027\000\000\000\r",
proxy_is_replicate = 0, proxy_try_count = 7, proxy_next_try = 1014224654, simul_max
= 0,
simul_count = 0, simul_mpp = 0, finished = 1, options = 0, container = 0x4c1000}
again, the proxysecret belongs to a server marked dead immediately
before the crash.
But the secret belongs to a NAS usually not used by users of this realm.
There was no matching entry (realm + NAS) in the logfile.
In all cases it was due to non-auth requests.
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