summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2010-05-18 21:09:41 +0000
committerMark Michelson <mmichelson@digium.com>2010-05-18 21:09:41 +0000
commit7814913d869bd53f12d1072f62fe1f5ac376b13d (patch)
treedb0f07a0a542e9d973c594e933a862a23193e0d9 /channels
parenta21192f4a7479e8a2d83f79104372822b03dca47 (diff)
Be sure to heap-allocate the redirecting to tag so as not to cause crashiness.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263860 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 115426b5b..9bb79167a 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -17540,6 +17540,10 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request
ast_free(redirecting->from.tag);
}
redirecting->from.tag = ast_strdup(p->cid_tag);
+ if (redirecting->to.tag) {
+ ast_free(redirecting->to.tag);
+ }
+ redirecting->to.tag = ast_strdup(p->cid_tag);
}
if (!ast_strlen_zero(redirecting_to_number)) {
if (redirecting->to.number) {
@@ -17555,7 +17559,6 @@ static void change_redirecting_information(struct sip_pvt *p, struct sip_request
ast_debug(3, "Got redirecting to name %s\n", redirecting_from_number);
redirecting->to.name = redirecting_to_name;
}
- redirecting->to.tag = (char *) p->cid_tag;
redirecting->reason = reason;
}