Segmentation fault due to bind_address = 0.0.0.0
Rainer Poisel
tm031051 at fh-stpoelten.ac.at
Mon Apr 3 22:40:05 CEST 2006
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
-------------- next part --------------
##
## 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 {
}
-------------- next part --------------
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
More information about the Freeradius-Users
mailing list