summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2016-11-23 01:03:56 +0000
committerLiong Sauw Ming <ming@teluu.com>2016-11-23 01:03:56 +0000
commit12b89ce7a100ca16ebc5a513f45aa84b196aff0a (patch)
tree8269abba00d7bb77252866f4539b53235cd2c51b
parent50feb32cf2bb9fe39137c6f35a772ac050e0b9e7 (diff)
Fixed #1981: Assertion when session timer is disabled and PJSIP receives 422
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5488 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/src/pjsip-ua/sip_timer.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/pjsip/src/pjsip-ua/sip_timer.c b/pjsip/src/pjsip-ua/sip_timer.c
index 9417325f..e5a48e84 100644
--- a/pjsip/src/pjsip-ua/sip_timer.c
+++ b/pjsip/src/pjsip-ua/sip_timer.c
@@ -733,8 +733,15 @@ PJ_DEF(pj_status_t) pjsip_timer_process_resp(pjsip_inv_session *inv,
{if(st_code)*st_code=PJSIP_SC_INTERNAL_SERVER_ERROR;return PJ_EINVAL;});
/* Check if Session Timers is supported */
- if ((inv->options & PJSIP_INV_SUPPORT_TIMER) == 0)
- return PJ_SUCCESS;
+ if ((inv->options & PJSIP_INV_SUPPORT_TIMER) == 0) {
+ if (rdata->msg_info.msg->line.status.code ==
+ PJSIP_SC_SESSION_TIMER_TOO_SMALL)
+ {
+ return PJSIP_EINVALIDSTATUS;
+ } else {
+ return PJ_SUCCESS;
+ }
+ }
pj_assert(is_initialized);