Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
Description
$ cat ../radsecproxy.conf
rewrite in_rewrite {
removeAttribute 5
addAttribute 4:11
removeVendorAttribute 98
removeVendorAttribute 99:100
addVendorAttribute 99:101:47
}
LoopPrevention on
client 127.0.0.1 {
type udp
secret secret
rewriteIn in_rewrite
rewriteAttribute User-Name:/^(.*)@local$/\1@example.com/
}
server 127.0.0.2 {
type UDP
secret secret
LoopPrevention off
}
server 127.0.0.3 {
type UDP
secret secret
}
server 127.0.0.10 {
type udp
port 4711
secret secret2
dynamicLookupCommand /bin/false
}
realm * {
server 127.0.0.10
}
$ gdb --args ./radsecproxy -fc ../radsecproxy.conf -d 4
[...]
$ echo "User-Name=bob@foo.com,User-Password=hemligt" | radclient 127.0.0.1 auth secret
[...]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffeffff700 (LWP 10489)]
0x000000000040f6fd in addserverextraudp (conf=0x641840) at udp.c:320
320 switch (((struct hostportres *)list_first(conf->hostports)->data)->addrinfo->ai_family) {
(gdb) p conf
= (struct clsrvconf *) 0x641840
(gdb) p conf->hostports
= (struct list *) 0x0
(gdb) p *conf
= {name = 0x634d10 "127.0.0.10", type = 0 '\000', pdef = 0x419260, hostsrc = 0x635e00,
portsrc = 0x634d50 "4711", hostports = 0x0, secret = 0x634d70 "secret2", tls = 0x0,
matchcertattr = 0x0, certcnregex = 0x0, certuriregex = 0x0, confrewritein = 0x0,
confrewriteout = 0x0, confrewriteusername = 0x0, rewriteusername = 0x0,
dynamiclookupcommand = 0x634d90 "/bin/false", statusserver = 0 '\000',
retryinterval = 255 '\377', retrycount = 255 '\377', dupinterval = 0 '\000',
certnamecheck = 1 '\001', addttl = 0 '\000', loopprevention = 255 '\377', rewritein = 0x0,
rewriteout = 0x0, lock = 0x0, tlsconf = 0x0, clients = 0x0, servers = 0x641910,
fticks_viscountry = 0x0}
rewrite in_rewrite {
removeAttribute 5
addAttribute 4:11
removeVendorAttribute 98
removeVendorAttribute 99:100
addVendorAttribute 99:101:47
}
LoopPrevention on
client 127.0.0.1 {
type udp
secret secret
rewriteIn in_rewrite
rewriteAttribute User-Name:/^(.*)@local$/\1@example.com/
}
server 127.0.0.2 {
type UDP
secret secret
LoopPrevention off
}
server 127.0.0.3 {
type UDP
secret secret
}
server 127.0.0.10 {
type udp
port 4711
secret secret2
dynamicLookupCommand /bin/false
}
realm * {
server 127.0.0.10
}
$ gdb --args ./radsecproxy -fc ../radsecproxy.conf -d 4
[...]
$ echo "User-Name=bob@foo.com,User-Password=hemligt" | radclient 127.0.0.1 auth secret
[...]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffeffff700 (LWP 10489)]
0x000000000040f6fd in addserverextraudp (conf=0x641840) at udp.c:320
320 switch (((struct hostportres *)list_first(conf->hostports)->data)->addrinfo->ai_family) {
(gdb) p conf
= (struct clsrvconf *) 0x641840
(gdb) p conf->hostports
= (struct list *) 0x0
(gdb) p *conf
= {name = 0x634d10 "127.0.0.10", type = 0 '\000', pdef = 0x419260, hostsrc = 0x635e00,
portsrc = 0x634d50 "4711", hostports = 0x0, secret = 0x634d70 "secret2", tls = 0x0,
matchcertattr = 0x0, certcnregex = 0x0, certuriregex = 0x0, confrewritein = 0x0,
confrewriteout = 0x0, confrewriteusername = 0x0, rewriteusername = 0x0,
dynamiclookupcommand = 0x634d90 "/bin/false", statusserver = 0 '\000',
retryinterval = 255 '\377', retrycount = 255 '\377', dupinterval = 0 '\000',
certnamecheck = 1 '\001', addttl = 0 '\000', loopprevention = 255 '\377', rewritein = 0x0,
rewriteout = 0x0, lock = 0x0, tlsconf = 0x0, clients = 0x0, servers = 0x641910,
fticks_viscountry = 0x0}