summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2014-06-05 05:04:42 +0000
committerBenny Prijono <bennylp@teluu.com>2014-06-05 05:04:42 +0000
commit0ada20698596f3f38f102efa504d5a9ac51919e9 (patch)
tree40130481c5d1a54570e3b4919db0b10fb6f73b51
parent9bd5e4dd99a742c764fa5839a7d5ff88c7bafc56 (diff)
Misc (re #1751): added additional checking to invite and dialog instances when terminating the call when media initialization fails due to suspected crash
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4856 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/src/pjsua-lib/pjsua_call.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c
index 45e21326..f4faaf49 100644
--- a/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/pjsip/src/pjsua-lib/pjsua_call.c
@@ -1381,7 +1381,9 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata)
* a response message and terminate the invite here.
*/
pjsip_dlg_respond(dlg, rdata, sip_err_code, NULL, NULL, NULL);
- pjsip_inv_terminate(call->inv, sip_err_code, PJ_FALSE);
+ if (call->inv && call->inv->dlg) {
+ pjsip_inv_terminate(call->inv, sip_err_code, PJ_FALSE);
+ }
call->inv = NULL;
call->async_call.dlg = NULL;
goto on_return;
@@ -1389,7 +1391,9 @@ pj_bool_t pjsua_call_on_incoming(pjsip_rx_data *rdata)
} else if (status != PJ_EPENDING) {
pjsua_perror(THIS_FILE, "Error initializing media channel", status);
pjsip_dlg_respond(dlg, rdata, sip_err_code, NULL, NULL, NULL);
- pjsip_inv_terminate(call->inv, sip_err_code, PJ_FALSE);
+ if (call->inv && call->inv->dlg) {
+ pjsip_inv_terminate(call->inv, sip_err_code, PJ_FALSE);
+ }
call->inv = NULL;
call->async_call.dlg = NULL;
goto on_return;