[Asterisk-code-review] chan sip: Fix memory leaks. (asterisk[master])

Corey Farrell asteriskteam at digium.com
Mon Dec 18 19:05:04 CST 2017


Corey Farrell has uploaded this change for review. ( https://gerrit.asterisk.org/7647


Change subject: chan_sip: Fix memory leaks.
......................................................................

chan_sip: Fix memory leaks.

In change_redirecting_information variables we use ast_strlen_zero to
see if a value should be saved.  In the case where the value is not NULL
but is a zero length string we leaked.

handle_response_subscribe leaked a reference to the ccss monitor
instance.

Change-Id: Ib11444de69c3d5b2360a88ba2feb54d2c2e9f05f
---
M channels/chan_sip.c
1 file changed, 9 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/47/7647/1

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e54997b..ef6a860 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -23430,6 +23430,8 @@
 		redirecting->from.number.valid = 1;
 		ast_free(redirecting->from.number.str);
 		redirecting->from.number.str = redirecting_from_number;
+	} else {
+		ast_free(redirecting_from_number);
 	}
 	if (!ast_strlen_zero(redirecting_from_name)) {
 		ast_debug(3, "Got redirecting from name %s\n", redirecting_from_name);
@@ -23437,6 +23439,8 @@
 		redirecting->from.name.valid = 1;
 		ast_free(redirecting->from.name.str);
 		redirecting->from.name.str = redirecting_from_name;
+	} else {
+		ast_free(redirecting_from_name);
 	}
 	if (!ast_strlen_zero(p->cid_tag)) {
 		ast_free(redirecting->from.tag);
@@ -23450,6 +23454,8 @@
 		redirecting->to.number.valid = 1;
 		ast_free(redirecting->to.number.str);
 		redirecting->to.number.str = redirecting_to_number;
+	} else {
+		ast_free(redirecting_to_number);
 	}
 	if (!ast_strlen_zero(redirecting_to_name)) {
 		ast_debug(3, "Got redirecting to name %s\n", redirecting_from_number);
@@ -23457,6 +23463,8 @@
 		redirecting->to.name.valid = 1;
 		ast_free(redirecting->to.name.str);
 		redirecting->to.name.str = redirecting_to_name;
+	} else {
+		ast_free(redirecting_to_name);
 	}
 	redirecting->reason.code = reason;
 	ast_free(redirecting->reason.str);
@@ -24486,6 +24494,7 @@
 			ast_cc_monitor_failed(monitor_instance->core_id,
 				monitor_instance->device_name,
 				"Received error response to our SUBSCRIBE");
+			ao2_ref(monitor_instance, -1);
 		}
 		return;
 	}

-- 
To view, visit https://gerrit.asterisk.org/7647
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib11444de69c3d5b2360a88ba2feb54d2c2e9f05f
Gerrit-Change-Number: 7647
Gerrit-PatchSet: 1
Gerrit-Owner: Corey Farrell <git at cfware.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20171218/fab2b118/attachment.html>


More information about the asterisk-code-review mailing list