i wrote a new version of local module (below) that is just a skeleton. when i start sip router, i get to console:
Not starting sip-proxy: invalid configuration file!
but i don't get anything about what is wrong with it.
gdb shows:
gdb) where #0 0xb7740424 in __kernel_vsyscall () #1 0xb75f2751 in *__GI_raise (sig=6)p at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #2 0xb75f5b82 in *__GI_abort () at abort.c:92 #3 0xb7633484 in __malloc_assert (assertion=<value optimized out>, file=<value optimized out>, line=4636, function=0xb76ea490 "_int_malloc") at malloc.c:352 #4 0xb7635ed4 in _int_malloc (av=<value optimized out>, bytes=<value optimized out>) at malloc.c:4636 #5 0xb7637c8c in *__GI___libc_malloc (bytes=0) at malloc.c:3661 #6 0xb767e2cc in analyze (preg=<value optimized out>, pattern=<value optimized out>, length=73, syntax=4436732) at regcomp.c:1135 #7 re_compile_internal (preg=<value optimized out>, pattern=<value optimized out>, length=73, syntax=4436732) at regcomp.c:804 #8 0xb767ee5e in __regcomp (preg=0xbf963844, pattern=0xb6ddb800 "^auth_db|dialplan|domain|htable|lcr|local|msilo|mtree|permissions|usrloc$", cflags=11) at regcomp.c:506 #9 0x0809a500 in set_mod_param_regex ( regex=0xb6ddb668 "auth_db|dialplan|domain|htable|lcr|local|msilo|mtree|permissions|usrloc", name=0xb6ddb6f0 "db_url", type=1, val=0xb6ddb778) at modparam.c:86 #10 0x0817e4fd in yyparse () at cfg.y:1733 #11 0x08095a1f in main (argc=18, argv=0xbf963f24) at main.c:2084
from that i see that the problem is that my new local module does not have db_url module param, but that does not explain why malloc causes the crash. this is with export MALLOC_CHECK_=2. if i do not define MALLOC_CHECK_=2, i still don't get any more stuff to console about the problem in config.
-- juha
---------------------------------------------------------------------------
/* * Local module */
#include "../../mod_fix.h"
MODULE_VERSION
int f1(struct sip_msg* _m, char* _uri_user_sp, char* _uri_host_sp) { return 1; }
int f2(struct sip_msg* _msg, char* _s1, char* _s2) { return 1; }
int f3(struct sip_msg* _msg, char* _sp, char* _s2) { return 1; }
int f4(struct sip_msg* _m, char* _condition, char* _s2) { return 1; }
int f5(struct sip_msg* _m, char* _condition, char* _str2) { return 1; }
int f6(struct sip_msg* _m, char* _condition, char* _str2) { return 1; }
/* Exported functions */ static cmd_export_t cmds[] = { {"f1", (cmd_function)f1, 2, fixup_pvar_pvar, fixup_free_pvar_pvar, REQUEST_ROUTE}, {"f2", (cmd_function)f2, 0, 0, 0, REQUEST_ROUTE}, {"f3", (cmd_function)f3, 1, fixup_pvar_null, fixup_free_pvar_null, REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE}, {"f4", (cmd_function)f4, 1, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE}, {"f5", (cmd_function)f5, 1, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE}, {"f6", (cmd_function)f6, 1, 0, 0, REQUEST_ROUTE | FAILURE_ROUTE}, {0, 0, 0, 0, 0, 0} };
static int mod_init(void) { return 0; }
/* Exported parameters */
/* Module interface */ struct module_exports exports = { "local", DEFAULT_DLFLAGS, /* dlopen flags */ cmds, /* Exported functions */ 0, /* Exported parameters */ 0, /* exported statistics */ 0, /* exported MI functions */ 0, /* exported pseudo-variables */ 0, /* extra processes */ mod_init, /* module initialization function */ 0, /* response function*/ 0, /* destroy function */ 0 /* child initialization function */ };