diff options
Diffstat (limited to 'pbx/pbx_ael.c')
-rw-r--r-- | pbx/pbx_ael.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c index 1a53c744b..2af624c4f 100644 --- a/pbx/pbx_ael.c +++ b/pbx/pbx_ael.c @@ -2993,7 +2993,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement, strncat(buf2,strp2+1, sizeof(buf2)-strlen(strp2+1)-2); strcat(buf2,"]"); for_init->appargs = strdup(buf2); - for_init->app = strdup("Set"); + /* for_init->app = strdup("Set"); just set! */ } else { strp2 = p->u1.for_init; while (*strp2 && isspace(*strp2)) @@ -3015,7 +3015,8 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement, *strp3 = 0; /* remove the closing paren */ for_init->appargs = strdup(buf2); - + if (for_init->app) + free(for_init->app); for_init->app = strdup("Macro"); } else { /* must be a regular app call */ char *strp3; @@ -3023,6 +3024,8 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement, strp3 = strchr(buf2,'('); if (strp3) { *strp3 = 0; + if (for_init->app) + free(for_init->app); for_init->app = strdup(buf2); for_init->appargs = strdup(strp3+1); strp3 = strrchr(for_init->appargs, ')'); |