mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-09 11:28:25 +00:00
chan_sip: sip_subscribe_mwi_destroy should not call sip_destroy
sip_subscribe_mwi_destroy calls sip_destroy on the reference counted mwi->call. This results in the fields of mwi->call being freed, but mwi->call itself it leaked. If other code is still using mwi->call it can cause problems. This change uses dialog_unref instead, to balance the ref provided by sip_alloc(). ASTERISK-24087 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/3834/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@419440 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -6108,9 +6108,9 @@ static void sip_subscribe_mwi_destroy(struct sip_subscription_mwi *mwi)
|
|||||||
{
|
{
|
||||||
if (mwi->call) {
|
if (mwi->call) {
|
||||||
mwi->call->mwi = NULL;
|
mwi->call->mwi = NULL;
|
||||||
sip_destroy(mwi->call);
|
mwi->call = dialog_unref(mwi->call, "sip_subscription_mwi destruction");
|
||||||
}
|
}
|
||||||
|
|
||||||
AST_SCHED_DEL(sched, mwi->resub);
|
AST_SCHED_DEL(sched, mwi->resub);
|
||||||
ast_string_field_free_memory(mwi);
|
ast_string_field_free_memory(mwi);
|
||||||
ast_free(mwi);
|
ast_free(mwi);
|
||||||
|
|||||||
Reference in New Issue
Block a user