From c8edf6c482f956a4a748406c7c176fcadd1f1100 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 10 Nov 2011 12:49:13 -0600 Subject: [PATCH] FS-3685 more issues --- src/mod/endpoints/mod_sofia/sofia_presence.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_presence.c b/src/mod/endpoints/mod_sofia/sofia_presence.c index b0fc2e667e..b47fc7f06c 100644 --- a/src/mod/endpoints/mod_sofia/sofia_presence.c +++ b/src/mod/endpoints/mod_sofia/sofia_presence.c @@ -3171,7 +3171,7 @@ sofia_gateway_subscription_t *sofia_find_gateway_subscription(sofia_gateway_t *g void sofia_presence_handle_sip_r_subscribe(int status, char const *phrase, nua_t *nua, sofia_profile_t *profile, nua_handle_t *nh, sofia_private_t *sofia_private, sip_t const *sip, - sofia_dispatch_event_t *de, + sofia_dispatch_event_t *de, tagi_t tags[]) { sip_event_t const *o = NULL; @@ -3227,10 +3227,11 @@ void sofia_presence_handle_sip_r_subscribe(int status, gw_sub_ptr->state = SUB_STATE_FAILED; if (sofia_private) { - nua_handle_destroy(sofia_private->gateway->sub_nh); - sofia_private->gateway->sub_nh = NULL; - nua_handle_bind(sofia_private->gateway->sub_nh, NULL); - sofia_private_free(sofia_private); + if (sofia_private->gateway->sub_nh) { + nua_handle_bind(sofia_private->gateway->sub_nh, NULL); + nua_handle_destroy(sofia_private->gateway->sub_nh); + sofia_private->gateway->sub_nh = NULL; + } } else { nua_handle_destroy(nh); }