Hi:
I want to insert a header field without the script. Instead I insert it in the tm module's t_relay() function. Next is my code. The first time I use the pkg_malloc(), but ser report that: BUG: qm_*: prev. fragm. tail overwritten(c0c0c000, abcdefed) so I changed the pkg_malloc to the shm_malloc(); this time the error happend again in the different place.
typedef int(*local_fp)(struct sip_msg *msg, str *txt, int flags); str *str1; char *tmp = "P-Security-Nobody: this is a test header for \r\n"; local_fp append_to_reply = NULL;
str1 = (str*)shm_malloc(sizeof(str)); if(str1) { str1->len = strlen(tmp); str1->s = (char*)shm_malloc(str1->len); strcpy(str1->s, tmp); append_to_reply = (local_fp)find_export("append_hf", 1, 0); if(append_to_reply){ DBG("DEBUG: SUNZJ find apppend_to_reply\n"); append_to_reply(p_msg, str1, NULL); } }
the next is gdb's output. Program received signal SIGABRT, Aborted. [Switching to Thread -1208486208 (LWP 6439)] 0x00ad77a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 (gdb) (gdb) where #0 0x00ad77a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x00b1b955 in raise () from /lib/tls/libc.so.6 #2 0x00b1d319 in abort () from /lib/tls/libc.so.6 #3 0x0808cb9d in qm_debug_frag (qm=0xb5f7e000, f=0x6) at mem/q_malloc.c:156 #4 0x0808d1ab in qm_malloc (qm=0xb5f7e000, size=4107, file=0x13fb49 "h_table.c", func=0x13fb1e "build_cell", line=231) at mem/q_malloc.c:379 #5 0x0011b654 in build_cell (p_msg=0x814bec0) at shm_mem.h:135 #6 0x0012c23e in t_newtran (p_msg=0x814bec0) at t_lookup.c:988 #7 0x00123f4e in t_relay_to (p_msg=0x814bec0, proxy=0x0, proto=0, replicate=0) at t_funcs.c:241 #8 0x0012f450 in w_t_relay (p_msg=0x814bec0, _foo=0x0, _bar=0x0) at tm.c:893 #9 0x0804fe41 in do_action (a=0x814a4ac, msg=0x814bec0) at action.c:611 #10 0x08050bad in run_actions (a=0x814a4ac, msg=0x814bec0) at action.c:719 #11 0x08074fe8 in eval_elem (e=0x814a4fc, msg=0x814bec0) at route.c:605 #12 0x08075482 in eval_expr (e=0x814a4fc, msg=0x814bec0) at route.c:654 #13 0x080754be in eval_expr (e=0x814a540, msg=0x814bec0) at route.c:670 #14 0x0804edd5 in do_action (a=0x814a684, msg=0x814bec0) at action.c:587 #15 0x08050bad in run_actions (a=0x814a684, msg=0x814bec0) at action.c:719 #16 0x0805019f in do_action (a=0x814a3ac, msg=0x814bec0) at action.c:376 #17 0x08050bad in run_actions (a=0x814a3ac, msg=0x814bec0) at action.c:719 #18 0x0806de90 in receive_msg ( buf=0x80db480 "INVITE sip:862222@sip.suntest.com SIP/2.0\r\nVia: SIP/2.0/UDP 192.168.0.19:5500;branch=z9hG4bK958088909\r\nFrom: sip:861111@sip.suntest.com;tag=1137899792;tag=1613933050\r\nTo: <sip:862222@sip.suntest.com"..., len=1018, rcv_info=0xbffe1590) at receive.c:162 #19 0x080858dc in udp_rcv_loop () at udp_server.c:458 #20 0x0805d77f in main_loop () at main.c:1032 #21 0x0805ece5 in main (argc=2, argv=0xbffe1754) at main.c:1569
Anyone who tell me what the problem is will be appreciated.
Thanks for your kind help Best Regards.
Sun Zongjun