summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2017-12-19 19:42:13 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-12-19 19:42:13 -0600
commit968993a297df673954dbd19c5ef41804ff98e267 (patch)
tree992b59622d3d0c79539b7f85d4f714e8b63e22b6 /channels
parent262eda7801c72d1e057cabbedb2f511ddc5b9ffd (diff)
parent3c037ef972a3dfe7ee832e6bc5580714a716bc44 (diff)
Merge "chan_sip: Fix memory leaks."
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e54997b0d..894bbf8a6 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -23430,6 +23430,8 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request
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 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request
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,13 +23454,17 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request
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);
+ ast_debug(3, "Got redirecting to name %s\n", redirecting_to_name);
update_redirecting->to.name = 1;
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 @@ static void handle_response_subscribe(struct sip_pvt *p, int resp, const char *r
ast_cc_monitor_failed(monitor_instance->core_id,
monitor_instance->device_name,
"Received error response to our SUBSCRIBE");
+ ao2_ref(monitor_instance, -1);
}
return;
}