]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 327512 via svnmerge from
authorMatthew Nicholson <mnicholson@digium.com>
Mon, 11 Jul 2011 13:55:28 +0000 (13:55 +0000)
committerMatthew Nicholson <mnicholson@digium.com>
Mon, 11 Jul 2011 13:55:28 +0000 (13:55 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r327512 | mnicholson | 2011-07-11 08:53:59 -0500 (Mon, 11 Jul 2011) | 2 lines

  reset our buffer each iteration when doing variable substitution
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@327513 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/pbx.c
tests/test_substitution.c

index 3cb9affebd1b17081b4a377d989f8d4e97b28a5c..e625a873aa5eab1ccdc916f32012f3bb3b1f58a7 100644 (file)
@@ -3732,6 +3732,9 @@ void ast_str_substitute_variables_full(struct ast_str **buf, ssize_t maxlen, str
        ast_str_reset(*buf);
        whereweare = tmp = templ;
        while (!ast_strlen_zero(whereweare)) {
+               /* reset our buffer */
+               ast_str_reset(substr3);
+
                /* Assume we're copying the whole remaining string */
                pos = strlen(whereweare);
                nextvar = NULL;
index 98e1ed1911611c9c1820de22170316ec7a589397..366b9371cc3df4bf32f5b93920acd1472c1e32fb 100644 (file)
@@ -263,6 +263,7 @@ AST_TEST_DEFINE(test_substitution)
        TEST(test_expected_result(test, c, "${LISTFILTER(list1,&,cd)}", "ab&ef"));
        TEST(test_expected_result(test, c, "${SHELL(echo -n 123)},${SHELL(echo -n 456)}", "123,456"));
        TEST(test_expected_result(test, c, "${foo},${CDR(answer)},${SHELL(echo -n 456)}", "123,,456"));
+       TEST(test_expected_result(test, c, "${foo},${this_does_not_exist},${THIS_DOES_NOT_EXIST(either)}", "123,,"));
 #undef TEST
 
        /* For testing dialplan functions */