From b6ec3509104e20a196dce2c371d3ec728b7f4200 Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Wed, 31 Oct 2007 15:46:41 +0000 Subject: [PATCH] Optimize pbx_substitute_variables git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87811 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/pbx.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main/pbx.c b/main/pbx.c index aecaa13eb2..d408287078 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -1819,10 +1819,15 @@ void pbx_substitute_variables_varshead(struct varshead *headp, const char *cp1, static void pbx_substitute_variables(char *passdata, int datalen, struct ast_channel *c, struct ast_exten *e) { + const char *tmp; memset(passdata, 0, datalen); + /* Nothing more to do */ + if (!e->data) + return; + /* No variables or expressions in e->data, so why scan it? */ - if (e->data && !strchr(e->data, '$') && !strstr(e->data,"${") && !strstr(e->data,"$[") && !strstr(e->data,"$(")) { + if ((!(tmp = strchr(e->data, '$'))) || (!strstr(tmp, "${") && !strstr(tmp, "$["))) { ast_copy_string(passdata, e->data, datalen); return; }