[RADIATOR] Radiator dying in SIGSEGV
Matti Saarinen
mjsaarin at cc.helsinki.fi
Mon Jun 1 06:50:34 CDT 2009
Hello,
Our Radiator had died several times in SIGSEGV. The reason for this has
so far been unknown. Now, a colleague of mine took interest in this and
added more tracing into the Radiator code. And he found what kills
radiusd.
There is PRF subroutine defined in Radius/TLS.pm. It defines variable
called $session as follows.
my $session = &Net::SSLeay::get_session($context->{ssl});
It seems that in some cases get_session may return null. When that
happens the next line in subroutine code fails and radiusd gets SIGSEGV
and dies. The next line is.
my $master_key = &Net::SSLeay::SESSION_get_master_key($session);
I think the fix would be that the code should check whether $session is
not null before trying to use it. What I don't know is what the
subroutine should return if $session happens to be null.
--
- Matti -
More information about the radiator
mailing list