Hi,

I got a segmentation fault when i tried to run freeradius (Versions
1.0.4, 1.0.5, 1.1.0 and 1.1.1) on Debian (Sarge) or Suse (10.0) with
options enabled in the attached config-file.

Meanwhile I found out that the segmentation fault happened because of
the following setting:

> bind_address = 0.0.0.0

No I replaced it with the default value

> bind_address = *

and everything is fine :)

Thanks for reading,
best regards,
Rainer
##
## radiusd.conf -- FreeRADIUS server configuration file.
##
##      http://www.freeradius.org/
##      $Id: radiusd.conf.in,v 1.161 2003/11/17 18:10:27 kkalev Exp $
##

############# PATHS #############
prefix = /usr/local/freeradius
exec_prefix = ${prefix}
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = ${localstatedir}/log/freeradius
raddbdir = ${sysconfdir}/freeradius
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/freeradius
log_file = ${logdir}/radius.log
libdir = ${exec_prefix}/lib/freeradius
pidfile = ${run_dir}/freeradius.pid

############# GLOBAL SETTINGS #############
max_request_time = 30
delete_blocked_requests = no
cleanup_delay = 5
max_requests = 1024
bind_address = 0.0.0.0
hostname_lookups = no
allow_core_dumps = no
regular_expressions     = yes
extended_expressions    = yes
log_stripped_names = no
log_auth = no
log_auth_badpass = no
log_auth_goodpass = no
usercollide = no
lower_pass = no
nospace_user = no
nospace_pass = no
Checkrad = ${sbindir}/checkrad
security {
        max_attributes = 200
        reject_delay = 1
        status_server = no
}
proxy_requests  = yes
$INCLUDE  ${confdir}/clients.conf
thread pool {
        start_servers = 5
        max_servers = 32
        min_spare_servers = 3
        max_spare_servers = 10
        max_requests_per_server = 0
}


############# MODULE SETTINGS #############
modules {
        pap {
                encryption_scheme = crypt
        }
        chap {
                authtype = CHAP
        }
        pam {
                pam_auth = radiusd
        }
        mschap {
                authtype = MS-CHAP
        }
        realm realmslash {
                format = prefix
                delimiter = "/"
        }
        realm suffix {
                format = suffix
                delimiter = "@"
        }
        realm realmpercent {
                format = suffix
                delimiter = "%"
        }
        preprocess {
                huntgroups = ${confdir}/huntgroups
                hints = ${confdir}/hints
                with_ascend_hack = no
                ascend_channels_per_line = 23
                with_ntdomain_hack = no
                with_specialix_jetstream_hack = no
                with_cisco_vsa_hack = no
        }
        files {
                usersfile = ${confdir}/users
                acctusersfile = ${confdir}/acct_users
                compat = no
        }
        detail {
                detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
                detailperm = 0600
        }
        acct_unique {
                key = "User-Name, Acct-Session-Id, NAS-IP-Address, 
Client-IP-Address, NAS-Port-Id"
        }
        radutmp {
                filename = ${logdir}/radutmp
                username = %{User-Name}
                case_sensitive = yes
                check_with_nas = yes            
                perm = 0600
                callerid = "yes"
        }
        radutmp sradutmp {
                filename = ${logdir}/sradutmp
                perm = 0644
                callerid = "no"
        }
        attr_filter {
                attrsfile = ${confdir}/attrs
        }
        counter daily {
                filename = ${raddbdir}/db.daily
                key = User-Name
                count-attribute = Acct-Session-Time
                reset = daily
                counter-name = Daily-Session-Time
                check-name = Max-Daily-Session
                allowed-servicetype = Framed-User
                cache-size = 5000
        }
        always fail {
                rcode = fail
        }
        always reject {
                rcode = reject
        }
        always ok {
                rcode = ok
                simulcount = 0
                mpp = no
        }
        digest {
        }
        exec {
                wait = yes
                input_pairs = request
        }
        exec echo {
                wait = yes
                program = "/bin/echo %{User-Name}"
                input_pairs = request
                output_pairs = reply
        }
}
authorize {
        preprocess
        realmslash
        suffix
        files
}
preacct {
        preprocess
        suffix
        files
}
accounting {
        acct_unique
        detail
        radutmp
}
session {
        radutmp
}
post-auth {
}
pre-proxy {
}

pumba:/etc/freeradius# gdb /usr/local/freeradius/sbin/radiusd 
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library 
"/lib/tls/libthread_db.so.1".

(gdb) set args -X
(gdb) run
Starting program: /usr/local/freeradius-1.0.5/sbin/radiusd -X
[Thread debugging using libthread_db enabled]
[New Thread -1212021056 (LWP 10020)]
Starting - reading configuration files ...
reread_config:  reading radiusd.conf
Config:   including file: /etc/freeradius/clients.conf
main: prefix = "/usr/local/freeradius"
main: localstatedir = "/var"
main: logdir = "/var/log/freeradius"
main: libdir = "/usr/local/freeradius/lib/freeradius"
main: radacctdir = "/var/log/freeradius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 1812
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/var/log/freeradius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/var/run/freeradius/freeradius.pid"
Can't find IP address for host 0.0.0.0
read_config_files:  reading dictionary
read_config_files:  reading naslist
Using deprecated naslist file.  Support for this will go away soon.
read_config_files:  reading clients
read_config_files:  reading realms
radiusd:  entering modules setup
Module: Library search path is /usr/local/freeradius/lib/freeradius
Module: Loaded preprocess 
preprocess: huntgroups = "/etc/freeradius/huntgroups"
preprocess: hints = "/etc/freeradius/hints"
preprocess: with_ascend_hack = no
preprocess: ascend_channels_per_line = 23
preprocess: with_ntdomain_hack = no
preprocess: with_specialix_jetstream_hack = no
preprocess: with_cisco_vsa_hack = no
Module: Instantiated preprocess (preprocess) 
Module: Loaded realm 
realm: format = "prefix"
realm: delimiter = "/"
realm: ignore_default = no
realm: ignore_null = no
Module: Instantiated realm (realmslash) 
realm: format = "suffix"
realm: delimiter = "@"
realm: ignore_default = no
realm: ignore_null = no
Module: Instantiated realm (suffix) 
Module: Loaded files 
files: usersfile = "/etc/freeradius/users"
files: acctusersfile = "/etc/freeradius/acct_users"
files: preproxy_usersfile = "/etc/freeradius/preproxy_users"
files: compat = "no"
Module: Instantiated files (files) 
Module: Loaded Acct-Unique-Session-Id 
acct_unique: key = "User-Name, Acct-Session-Id, NAS-IP-Address, 
Client-IP-Address, NAS-Port-Id"
Module: Instantiated acct_unique (acct_unique) 
Module: Loaded detail 
detail: detailfile = 
"/var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d"
detail: detailperm = 384
detail: dirperm = 493
detail: locking = no
Module: Instantiated detail (detail) 
Module: Loaded radutmp 
radutmp: filename = "/var/log/freeradius/radutmp"
radutmp: username = "%{User-Name}"
radutmp: case_sensitive = yes
radutmp: check_with_nas = yes
radutmp: perm = 384
radutmp: callerid = yes
Module: Instantiated radutmp (radutmp) 
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.
rad_recv: Access-Request packet from host 192.168.1.81:1923, id=8, length=48
User-Name = "meathome"
User-Password = "\250\357A\207\215\322\307\340\346\355\026\024\t(\251+"

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1212021056 (LWP 10020)]
0x0804c60c in rad_respond (request=0x81106d8, fun=0x8052f80 <rad_authenticate>) 
at radiusd.c:1630
1630            if(strcmp(mainconfig.do_lower_user, "before") == 0)
(gdb) display mainconfig              
1: mainconfig = {next = 0x0, config_dead_time = 0, myip = 0, log_auth = 0, 
log_auth_badpass = 0, log_auth_goodpass = 0, do_usercollide = 0, 
allow_core_dumps = 0, debug_level = 0, proxy_requests = 0, post_proxy_authorize 
= 0, wake_all_if_all_dead = 0, proxy_synchronous = 0, 
proxy_dead_time = 0, proxy_retry_count = 0, proxy_retry_delay = 0, 
proxy_fallback = 0, reject_delay = 0, status_server = 0, 
max_request_time = 30, cleanup_delay = 5, max_requests = 1024, 
kill_unresponsive_children = 0, do_lower_user = 0x0, do_lower_pass = 0x0, 
do_nospace_user = 0x0, do_nospace_pass = 0x0, nospace_time = 0x0, log_file = 
0x8066560 "/var/log/freeradius/radius.log", checkrad = 0x0, 
pid_file = 0x8066588 "/var/run/freeradius/freeradius.pid", uid_name = 0x0, 
gid_name = 0x0, listen = 0x8069630, config = 0x8066088, 
clients = 0x810a528, realms = 0x0}
(gdb) quit
- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to