diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-06-28 00:39:58 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-06-28 00:39:58 +0000 |
commit | 532a86c054092a117a9649001ef9ef1fda13e419 (patch) | |
tree | ca7727f3e26df62c20eb2bbe7c65f318881e01e4 | |
parent | b3da86fc77ae67cc955aedb7c43045cf2327d10d (diff) |
Fixed crash when handling incoming MESSAGE request without message body but with Content/Type set (thanks Anshuman S. Rawat)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2086 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjsip-apps/src/test-pjsua/scripts-sendto/999_message_no_body.py | 24 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_im.c | 12 |
2 files changed, 34 insertions, 2 deletions
diff --git a/pjsip-apps/src/test-pjsua/scripts-sendto/999_message_no_body.py b/pjsip-apps/src/test-pjsua/scripts-sendto/999_message_no_body.py new file mode 100644 index 00000000..2e369edb --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-sendto/999_message_no_body.py @@ -0,0 +1,24 @@ +# $Id$ +import inc_sip as sip +import inc_sdp as sdp + +# There's some report that incoming MESSAGE without body will crash pjsua +# +complete_msg = \ +"""MESSAGE sip:localhost SIP/2.0 +Via: SIP/2.0/UDP 192.168.0.14:5060;rport;branch=z9hG4bKPj9db9 +Max-Forwards: 70 +From: <sip:192.168.0.14>;tag=08cd5bfc2d8a4fddb1f5e59c6961d298 +To: <sip:localhost> +Call-ID: 3373d9eb32aa458db7e69c7ea51e0bd7 +CSeq: 23809 MESSAGE +Contact: <sip:192.168.0.14:5060> +User-Agent: PJSUA v0.8.0-trunk/win32 +Content-Type: text/plain +Content-Length: 50 +""" + + +sendto_cfg = sip.SendtoCfg( "empty MESSAGE", "--null-audio --auto-answer 200", + "", 488, complete_msg=complete_msg) + diff --git a/pjsip/src/pjsua-lib/pjsua_im.c b/pjsip/src/pjsua-lib/pjsua_im.c index 509f15fd..f993ff90 100644 --- a/pjsip/src/pjsua-lib/pjsua_im.c +++ b/pjsip/src/pjsua-lib/pjsua_im.c @@ -127,8 +127,16 @@ pj_bool_t pjsua_im_accept_pager(pjsip_rx_data *rdata, return PJ_FALSE; } #else - PJ_UNUSED_ARG(rdata); - PJ_UNUSED_ARG(p_accept_hdr); + pjsip_msg *msg; + + msg = rdata->msg_info.msg; + if (msg->body == NULL) { + /* Create Accept header. */ + if (p_accept_hdr) + *p_accept_hdr = pjsua_im_create_accept(rdata->tp_info.pool); + + return PJ_FALSE; + } #endif return PJ_TRUE; |