rlm_sql: readclients segmentation fault

Milan Holub holub at thenet.ch
Thu Apr 19 09:30:17 CEST 2007


Hi Alan,

On Wed, Apr 18, 2007 at 05:09:11PM +0200, Alan DeKok wrote:
>   Ah.  client_add() doesn't create the necessary structure.  I've just
> fixed that.

==> I can confirm it works (cool!)


However here is another bug report:):
* cvs head
* all NASes in nas table(clients.conf not used)
* sending HUP results in segmentation fault when re-building up internal
clients structure:

rlm_sql (sql): Read entry nasname=<IP_IN_NAS_TABLE>,shortname=wlan-gw29,secret=DISABLED
rlm_sql (sql): Adding client <IP_IN_NAS_TABLE> (wlan-gw29) to clients list

Program received signal SIGSEGV, Segmentation fault.
0x40033e93 in rbtree_insertnode (tree=0x81f1c48, Data=0x8276748) at rbtree.c:248
248                     result = tree->Compare(Data, Current->Data);
(gdb) bt
#0  0x40033e93 in rbtree_insertnode (tree=0x81f1c48, Data=0x8276748) at rbtree.c:248
#1  0x40033f87 in rbtree_insert (tree=0x81f1c48, Data=0x8276748) at rbtree.c:299
#2  0x0804e64b in client_add (clients=0x815bd28, client=0x8276748) at client.c:232
#3  0x4054ef98 in generate_sql_clients (inst=0x82694f0) at rlm_sql.c:338
#4  0x4054ff6d in rlm_sql_instantiate (conf=0x820a308, instance=0x82694e4) at rlm_sql.c:862
#5  0x080561e5 in find_module_instance (modules=0x8206a80, instname=0x820f728 "sql") at modules.c:307
#6  0x08057cf3 in do_compile_modsingle (parent=0x0, component=1, ci=0x820f708, filename=0x8079f48 "radiusd.conf", grouptype=0,
    modname=0xbfffe478) at modcall.c:1195
#7  0x08058308 in compile_modsingle (parent=0x0, component=1, ci=0x820f708, filename=0x8079f48 "radiusd.conf", modname=0xbfffe478)
    at modcall.c:1302
#8  0x0805671e in load_component_section (parent=0x0, cs=0x820f3c0, comp=1, filename=0x8079f48 "radiusd.conf") at modules.c:551
#9  0x08056bc0 in setup_modules (reload=1) at modules.c:927
#10 0x08055a9d in read_mainconfig (reload=1) at mainconfig.c:968
#11 0x08058ea2 in main (argc=2, argv=0xbffffbb4) at radiusd.c:540

#0  0x40033e93 in rbtree_insertnode (tree=0x81f1c48, Data=0x8276748) at rbtree.c:248
248                     result = tree->Compare(Data, Current->Data);
(gdb) list
243                     int result;
244
245                     /*
246                      *      See if two entries are identical.
247                      */
248                     result = tree->Compare(Data, Current->Data);
249                     if (result == 0) {
250                             /*
251                              *      Don't replace the entry.
252                              */
(gdb) print Data
$1 = (void *) 0x8276748
(gdb) print Current->Data
Cannot access memory at address 0x29

==> if you need more debug outpu then let me know...


Milan Holub
holub (at) thenet (dot) ch

--------------------------------------
 TheNet-Internet Services AG,
 im Bernertechnopark, Morgenstr. 129
 CH-3018, Bern, Switzerland
 031 998 4333, Fax 031 998 4330
 http://www.thenet.ch
 http://wlan.thenet.ch
--------------------------------------



More information about the Freeradius-Users mailing list