summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2013-02-27 09:54:51 +0000
committerNanang Izzuddin <nanang@teluu.com>2013-02-27 09:54:51 +0000
commitf9681b24d393fc30dc86099ade679f16ab5318b0 (patch)
tree46519e17ec3a1e0af2730945513651ac15476970 /pjsip
parent2a29b40ed8544aae9143c3d49c1b1a725d5417ca (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.c6
-rw-r--r--pjsip/src/pjsip/sip_util_statefull.c5
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];