Freeradius 3.0.10 sigsegv

Alan DeKok aland at deployingradius.com
Wed Jan 6 22:53:05 CET 2016


On Jan 6, 2016, at 4:46 PM, Luca Palazzo <luca.palazzo at unict.it> wrote:
> 
> I've just commented it but i got same sigsegv:
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7bc77a0 in paircompare (request=request at entry=0x950d60, req_list=0x951010, check=check at entry=0x952b00, rep_list=rep_list at entry=0x0) at src/main/pair.c:536
> 536                                     if ((auth_item->da == from) || (!from)) {
> (gdb) p from
> $1 = (const DICT_ATTR *) 0x68ff50
> (gdb) p auth_item
> $2 = (VALUE_PAIR *) 0x2e696d696c6f7040
> (gdb) p auth_item->da
> Cannot access memory at address 0x2e696d696c6f7040

  That's a garbage value.  The server is accessing an attribute which was deleted.

> (gdb)
> 
> Only this part remains:
> 
> if (EAP-Message) {
>                 if ( Called-Station-ID =~ /.*:eduroam$/ )
> 
>                         if ( SQL-Group == studente ) {
>                                reject
>                                update reply {
>                                        Reply-Message = "Eduroam access for students allowed only if you are outside UniCT campus"
>                                }

  The "update reply" will never get used.  As soon as the server sees the "reject", the packets will be rejected.

  So swap the order or "reject" and "update reply".  I don't think it will help, though.

  Ad what packet makes it SEGV?  You have the code checking for multiple things.  Does it SEGV for *all* of them?  Or just one?  If it's just one, can you delete the *other* checks and still have it SEGV?

  It would help a LOT to have a simple configuration which I can use here.  Right now, your configuration depends on local SQL-Groups, and other things (EAP config, SQL server), which I don't have access to.

  Alan DeKok.




More information about the Freeradius-Users mailing list