res_pjsip_session.c: Fix crashes seen when call cancelled.

Two testsuite tests crashed in the same place as a result of an INVITE
being CANCELed.

tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_unspecified
tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_tcp

The session pointer is no longer in the inv->mod_data[session_module.id]
location because the INVITE transaction has reached the terminated state.

ASTERISK-25297 #close
Reported by: Richard Mudgett

Change-Id: Idb75fdca0321f5447d5dac737a632a5f03614427
changes/94/994/1
Richard Mudgett 10 years ago
parent 687597ca8c
commit 077c58cd5c

@ -2713,8 +2713,10 @@ static void session_inv_on_media_update(pjsip_inv_session *inv, pj_status_t stat
struct ast_sip_session *session = inv->mod_data[session_module.id];
const pjmedia_sdp_session *local, *remote;
if (!session->channel) {
/* If we don't have a channel. We really don't care about media updates.
if (!session || !session->channel) {
/*
* If we don't have a session or channel then we really
* don't care about media updates.
* Just ignore
*/
return;

Loading…
Cancel
Save