aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-14 22:42:17 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-14 22:42:17 +0000
commit89864095c8d4436d98f75d4a1c338b3c96fede1f (patch)
treeeb21c5f9de5ae6021204bac80e1e8380749c999e /pbx
parent04b34fd8e132320704f5f7daebba3948d93b2a3d (diff)
Merged revisions 149199 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r149199 | tilghman | 2008-10-14 17:38:06 -0500 (Tue, 14 Oct 2008) | 8 lines Add additional memory debugging to several core APIs, and fix several memory leaks found with these changes. (Closes issue #13505, closes issue #13543) Reported by: mav3rick, triccyx Patches: 20081001__bug13505.diff.txt uploaded by Corydon76 (license 14) Tested by: mav3rick, triccyx ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@149202 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r--pbx/pbx_spool.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pbx/pbx_spool.c b/pbx/pbx_spool.c
index 37ff0edad..26d38dfe5 100644
--- a/pbx/pbx_spool.c
+++ b/pbx/pbx_spool.c
@@ -101,6 +101,9 @@ static void init_outgoing(struct outgoing *o)
static void free_outgoing(struct outgoing *o)
{
+ if (o->vars) {
+ ast_variables_destroy(o->vars);
+ }
ast_free(o);
}
@@ -324,9 +327,11 @@ static void *attempt_thread(void *data)
if (!ast_strlen_zero(o->app)) {
ast_verb(3, "Attempting call on %s/%s for application %s(%s) (Retry %d)\n", o->tech, o->dest, o->app, o->data, o->retries);
res = ast_pbx_outgoing_app(o->tech, o->format, o->dest, o->waittime * 1000, o->app, o->data, &reason, 2 /* wait to finish */, o->cid_num, o->cid_name, o->vars, o->account, NULL);
+ o->vars = NULL;
} else {
ast_verb(3, "Attempting call on %s/%s for %s@%s:%d (Retry %d)\n", o->tech, o->dest, o->exten, o->context,o->priority, o->retries);
res = ast_pbx_outgoing_exten(o->tech, o->format, o->dest, o->waittime * 1000, o->context, o->exten, o->priority, &reason, 2 /* wait to finish */, o->cid_num, o->cid_name, o->vars, o->account, NULL);
+ o->vars = NULL;
}
if (res) {
ast_log(LOG_NOTICE, "Call failed to go through, reason (%d) %s\n", reason, ast_channel_reason2str(reason));