summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Peeler <jpeeler@digium.com>2010-01-19 22:59:53 +0000
committerJeff Peeler <jpeeler@digium.com>2010-01-19 22:59:53 +0000
commit8fd9401e3d4e92512245b6beed73d1176431ef3b (patch)
tree591a0711d332d15c229e07172063d130cb187a70
parent873989db9165e388634e3750e07835d580f4c0fb (diff)
Initialize data on the stack so that Park doesn't interpret random arguments.
passdata was only being set in pbx_substitue_variables when arguments were passed. (closes issue #16406) (closes issue #16586) Reported by: DLNoah Patches: bug16586v2.patch uploaded by jpeeler (license 325) Tested by: DLNoah git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@241366 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/pbx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/main/pbx.c b/main/pbx.c
index d0ca80d46..6f67abaea 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -3970,8 +3970,10 @@ static void pbx_substitute_variables(char *passdata, int datalen, struct ast_cha
const char *tmp;
/* Nothing more to do */
- if (!e->data)
+ if (!e->data) {
+ *passdata = '\0';
return;
+ }
/* No variables or expressions in e->data, so why scan it? */
if ((!(tmp = strchr(e->data, '$'))) || (!strstr(tmp, "${") && !strstr(tmp, "$["))) {