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 -------------------------------------- - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html