diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2013-02-27 09:54:51 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2013-02-27 09:54:51 +0000 |
commit | f9681b24d393fc30dc86099ade679f16ab5318b0 (patch) | |
tree | 46519e17ec3a1e0af2730945513651ac15476970 /pjsip | |
parent | 2a29b40ed8544aae9143c3d49c1b1a725d5417ca (diff) |
Re #1535: backported to 1.x
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4379 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsip/sip_transaction.c | 6 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_util_statefull.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index 7962800c..5cbcc321 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -1714,8 +1714,12 @@ static void send_msg_callback( pjsip_send_state *send_state, /* Check if transaction has cancelled itself from this transmit * notification (https://trac.pjsip.org/repos/ticket/1033). + * Also check if the transaction layer itself may have been shutdown + * (https://trac.pjsip.org/repos/ticket/1535) */ - if (tdata->mod_data[mod_tsx_layer.mod.id] == NULL) { + if (mod_tsx_layer.mod.id < 0 || + tdata->mod_data[mod_tsx_layer.mod.id] == NULL) + { *cont = PJ_FALSE; return; } diff --git a/pjsip/src/pjsip/sip_util_statefull.c b/pjsip/src/pjsip/sip_util_statefull.c index 375fb74a..9036a027 100644 --- a/pjsip/src/pjsip/sip_util_statefull.c +++ b/pjsip/src/pjsip/sip_util_statefull.c @@ -59,7 +59,10 @@ static void mod_util_on_tsx_state(pjsip_transaction *tsx, pjsip_event *event) { struct tsx_data *tsx_data; - if (event->type != PJSIP_EVENT_TSX_STATE) + /* Check if the module has been unregistered (see ticket #1535) and also + * verify the event type. + */ + if (mod_stateful_util.id < 0 || event->type != PJSIP_EVENT_TSX_STATE) return; tsx_data = (struct tsx_data*) tsx->mod_data[mod_stateful_util.id]; |