Stefan Winter wrote:
that still doesn't fix it; the SEGV is now at a different place though:
That's better.
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff65a5634 in free () from /lib64/libc.so.6 (gdb) bt #0 0x00007ffff65a5634 in free () from /lib64/libc.so.6 #1 0x000000000040e2c0 in cf_section_parse_free (cs=0x6797d0, base=0x87f710) at conffile.c:344 #2 0x000000000041ad11 in module_instance_free (data=0x87f5d0) at modules.c:382
If you print this->name or this->entry->module->name, you'll see which module it is. Odds are it's the same kind of nonsense as rlm_eap_tls. The parsed configuration items are buried inside of a second structure, rather than being in the main instance data. That fix should be easier. Add a "detach" method to the module. Call cf_section_parse_free() on the real pointer. And then free() the instance. Alan DeKok.