3.0.3 SIGSEGV on config parse #634

Closed
sergey-gt-ekb opened this Issue May 14, 2014 · 12 comments

Projects

None yet

5 participants

@sergey-gt-ekb

3.0.2 work ok with same config.

[test:~]$gdb /opt/fr.krus/sbin/radiusd
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-56.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /opt/fr.krus/sbin/radiusd...done.
(gdb) set args -X
(gdb) run
Starting program: /opt/fr.krus/sbin/radiusd -X
[Thread debugging using libthread_db enabled]
radiusd: FreeRADIUS Version 3.0.3, for host x86_64-unknown-linux-gnu, built on May 14 2014 at 16:10:06
Copyright (C) 1999-2014 The FreeRADIUS server project and contributors
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License
For more information about these matters, see the file named COPYRIGHT
Starting - reading configuration files ...
including dictionary file /opt/fr.krus/freeradius/dictionary
including dictionary file /opt/fr.krus/freeradius/dictionary.dhcp
including dictionary file /opt/fr.krus/freeradius/dictionary.vqp
including dictionary file /opt/fr.krus/conf/dictionary
including configuration file /opt/fr.krus/conf/radiusd.conf
including configuration file /opt/fr.krus/conf/proxy.conf
including configuration file /opt/fr.krus/conf/clients.conf
including files in directory /opt/fr.krus/conf/mods-enabled/
including configuration file /opt/fr.krus/conf/mods-enabled/detail.krus
including configuration file /opt/fr.krus/conf/mods-enabled/logintime
including configuration file /opt/fr.krus/conf/mods-enabled/attr_filter
including configuration file /opt/fr.krus/conf/mods-enabled/chap
including configuration file /opt/fr.krus/conf/mods-enabled/cache_eap
including configuration file /opt/fr.krus/conf/mods-enabled/expiration
including configuration file /opt/fr.krus/conf/mods-enabled/soh
including configuration file /opt/fr.krus/conf/mods-enabled/detail
including configuration file /opt/fr.krus/conf/mods-enabled/detail.log
including configuration file /opt/fr.krus/conf/mods-enabled/utf8
including configuration file /opt/fr.krus/conf/mods-enabled/unix
including configuration file /opt/fr.krus/conf/mods-enabled/expr
including configuration file /opt/fr.krus/conf/mods-enabled/passwd
including configuration file /opt/fr.krus/conf/mods-enabled/preprocess
including configuration file /opt/fr.krus/conf/mods-enabled/echo
including configuration file /opt/fr.krus/conf/mods-enabled/dynamic_clients
including configuration file /opt/fr.krus/conf/mods-enabled/ntlm_auth
including configuration file /opt/fr.krus/conf/mods-enabled/sradutmp
including configuration file /opt/fr.krus/conf/mods-enabled/mschap
including configuration file /opt/fr.krus/conf/mods-enabled/digest
including configuration file /opt/fr.krus/conf/mods-enabled/always
including configuration file /opt/fr.krus/conf/mods-enabled/linelog
including configuration file /opt/fr.krus/conf/mods-enabled/realm
including configuration file /opt/fr.krus/conf/mods-enabled/radutmp
including configuration file /opt/fr.krus/conf/mods-enabled/exec
including configuration file /opt/fr.krus/conf/mods-enabled/krus_python
including configuration file /opt/fr.krus/conf/mods-enabled/eap
including configuration file /opt/fr.krus/conf/mods-enabled/pap
including configuration file /opt/fr.krus/conf/mods-enabled/files
including configuration file /opt/fr.krus/conf/mods-enabled/replicate
including configuration file /opt/fr.krus/conf/mods-enabled/unpack
including configuration file /opt/fr.krus/conf/mods-enabled/dhcp
including files in directory /opt/fr.krus/conf/policy.d/
including configuration file /opt/fr.krus/conf/policy.d/filter
including configuration file /opt/fr.krus/conf/policy.d/operator-name
including configuration file /opt/fr.krus/conf/policy.d/control
including configuration file /opt/fr.krus/conf/policy.d/accounting
including configuration file /opt/fr.krus/conf/policy.d/canonicalization
including configuration file /opt/fr.krus/conf/policy.d/eap
including configuration file /opt/fr.krus/conf/policy.d/cui
including configuration file /opt/fr.krus/conf/policy.d/dhcp
including files in directory /opt/fr.krus/conf/sites-enabled/
including configuration file /opt/fr.krus/conf/sites-enabled/default
including configuration file /opt/fr.krus/conf/sites-enabled/inner-tunnel
including configuration file /opt/fr.krus/conf/sites-enabled/krus
including configuration file /opt/fr.krus/conf/sites-enabled/../clients.krus.conf
main {
name = "radiusd"

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6f7fa3e in _talloc_free () from /usr/lib64/libtalloc.so.2
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6_3.7.x86_64 keyutils-libs-1.4-4.el6.x86_64 krb5-libs-1.9-33.el6_3.3.x86_64 libcom_err-1.41.12-12.el6.x86_64 libselinux-2.0.94-5.3.el6.x86_64 libtalloc-2.0.7-2.el6.x86_64 ncurses-libs-5.7-3.20090208.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64 openssl-1.0.0-25.el6_3.1.x86_64 readline-6.0-4.el6.x86_64 zlib-1.2.3-29.el6.x86_64
(gdb) bt
#0  0x00007ffff6f7fa3e in _talloc_free () from /usr/lib64/libtalloc.so.2
#1  0x00007ffff7bc55ee in cf_item_parse (cs=0x65eb00, name=0x43dec4 "prefix", type=100, data=0x656898, dflt=<value optimized out>)
    at src/main/conffile.c:1006
#2  0x00007ffff7bc5a79 in cf_section_parse (cs=0x65eb00, base=0x0, variables=0x652380) at src/main/conffile.c:1288
#3  0x0000000000419364 in main_config_init () at src/main/mainconfig.c:888
#4  0x0000000000420919 in main (argc=2, argv=0x7fffffffe558) at src/main/radiusd.c:315
(gdb) 
@arr2036
Member
arr2036 commented May 14, 2014

Could you include the bit of config which is likely causing the issue? Else we have no where to start with reproducing this...

@alandekok
Member

I think I've seen this before. It's usually a shared library issue. Please be sure that you don't have any 3.0.2 libraries hanging around.

@arr2036
Member
arr2036 commented May 14, 2014

Can you provide the output of radiusd -xv.

@leprechau
Contributor

This is the same issue I reported to the development list. I'm in the process of trying this in a fresh CentOS 6.5 VM now.

@arr2036
Member
arr2036 commented May 14, 2014

i'm very doubtful that it's a library conflict. After some previous undiagnosable issues I got annoyed and added magic number checks to the libraries and binaries (in addition to the one's Alan had added for modules previously).

The server will refuse to start with mismatched libraries, and the magic numbers are updated on configure (and contain the git commit), so unless you previously installed a pre-release version of 3.0.3 on a system that didn't have git installed, and then used an official version, it's very unlikely you have mismatched library versions.

@leprechau
Contributor

Information from the new VM:

Steps to reproduce:

sudo yum groupinstall “Development Tools”

sudo yum install openssl-devel libtalloc-devel zlib-devel unixODBC-devel readline-devel gdbm-devel pam-devel net-snmp-devel net-snmp-utils libpcap-devel pcre-devel

wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.3.tar.gz

tar zvxf freeradius-server-3.0.3.tar.gz

cd freeradius-server-3.0.3

./configure; make; sudo make install

sudo su -

/usr/local/sbin/radiusd -X

... SEGFAULT ...
@leprechau
Contributor

All installed packages on the above VM:
https://gist.github.com/leprechau/57412c966e0a256be89a

[root@ahurt-test-dev ~]# uname -a
Linux ahurt-test-dev.ena.net 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 11:15:18 CDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@ahurt-test-dev ~]# cat /etc/redhat-release
Scientific Linux release 6.5 (Carbon)
[root@ahurt-test-dev ~]#
@sergey-gt-ekb

I have fully remove bin/* sbin/* lib/*, rebuild and reinstall radiusd from 3.0.3 sources. I still have SIGSEGV

[test:~]$uname -a
Linux test.enforta.net 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

[test:~]$cat /etc/redhat-release
CentOS release 6.3 (Final)

/opt/fr.krus/sbin/radiusd -xv:
Thu May 15 09:40:28 2014 : Info: radiusd: FreeRADIUS Version 3.0.3, for host x86_64-unknown-linux-gnu, built on May 14 2014 at 16:10:06
Thu May 15 09:40:28 2014 : Debug: Server was built with:
Thu May 15 09:40:28 2014 : Debug: accounting
Thu May 15 09:40:28 2014 : Debug: authentication
Thu May 15 09:40:28 2014 : Debug: ascend binary attributes
Thu May 15 09:40:28 2014 : Debug: coa
Thu May 15 09:40:28 2014 : Debug: control-socket
Thu May 15 09:40:28 2014 : Debug: detail
Thu May 15 09:40:28 2014 : Debug: dhcp
Thu May 15 09:40:28 2014 : Debug: dynamic clients
Thu May 15 09:40:28 2014 : Debug: proxy
Thu May 15 09:40:28 2014 : Debug: regex-posix
Thu May 15 09:40:28 2014 : Debug: session-management
Thu May 15 09:40:28 2014 : Debug: stats
Thu May 15 09:40:28 2014 : Debug: tcp
Thu May 15 09:40:28 2014 : Debug: threads
Thu May 15 09:40:28 2014 : Debug: tls
Thu May 15 09:40:28 2014 : Debug: unlang
Thu May 15 09:40:28 2014 : Debug: vmps
Thu May 15 09:40:28 2014 : Debug: Server core libs:
Thu May 15 09:40:28 2014 : Debug: talloc : 2.0.*
Thu May 15 09:40:28 2014 : Debug: ssl : OpenSSL 1.0.0-fips 29 Mar 2010 0x010000003 (1.0.0-3)
Thu May 15 09:40:28 2014 : Debug: Library magic number:
Thu May 15 09:40:28 2014 : Debug: 0xf403000300000000
Thu May 15 09:40:28 2014 : Debug: Endianess:
Thu May 15 09:40:28 2014 : Debug: little
Thu May 15 09:40:28 2014 : Info: Copyright (C) 1999-2014 The FreeRADIUS server project and contributors
Thu May 15 09:40:28 2014 : Info: There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
Thu May 15 09:40:28 2014 : Info: PARTICULAR PURPOSE
Thu May 15 09:40:28 2014 : Info: You may redistribute copies of FreeRADIUS under the terms of the
Thu May 15 09:40:28 2014 : Info: GNU General Public License
Thu May 15 09:40:28 2014 : Info: For more information about these matters, see the file named COPYRIGHT

@alandekok alandekok closed this in 76e4ac2 May 15, 2014
@phongbvh89

i have same problem. I installed on Centos 5.8 and Centos 6.4. Still not working

@arr2036
Member
arr2036 commented Jun 19, 2014

I guarantee it's not the same problem if you use v3.0.x HEAD.

@phongbvh89

i used v3.0.3. When i ran radiusd service, i got a signal SIGSEGV from libtalloc.so.2. :(

@arr2036
Member
arr2036 commented Jun 19, 2014

v3.0.3 != v3.0.x HEAD

@arr2036 arr2036 locked and limited conversation to collaborators Jun 19, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.