From: Automerge script Date: Wed, 30 Aug 2006 00:03:06 +0000 (+0000) Subject: automerge commit X-Git-Tag: 1.2.12-netsec~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37f7d1e3f0354a1a0ead2a30a6e31cdd9fb1aa6a;p=thirdparty%2Fasterisk.git automerge commit git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@41301 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c index fcc80cb917..2a060e1ad9 100644 --- a/pbx/pbx_config.c +++ b/pbx/pbx_config.c @@ -1045,46 +1045,42 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) } if (ast_get_extension_priority(p)!=PRIORITY_HINT) { - char *tempdata = NULL, *startdata; + char *tempdata, *startdata; const char *el = ast_get_extension_label(p); - char *label = calloc(1, 128); - tempdata = strdup((char *)ast_get_extension_app_data(p)); - if (tempdata) { - startdata = tempdata; - while (*tempdata) { - if (*tempdata == '|') - *tempdata = ','; - tempdata++; - } - tempdata = startdata; + char label[128] = ""; + + tempdata = ast_strdupa(ast_get_extension_app_data(p)); + + startdata = tempdata; + while (*tempdata) { + if (*tempdata == '|') + *tempdata = ','; + tempdata++; } - if (el) { - if (snprintf(label, 127, "(%s)", el) != (strlen(el)+2)) { - incomplete = 1; // error encountered or label is > 125 chars - label = NULL; - }; - }; - if (ast_get_extension_matchcid(p)) + tempdata = startdata; + + if (el && (snprintf(label, sizeof(label), "(%s)", el) != (strlen(el) + 2))) + incomplete = 1; // error encountered or label is > 125 chars + + if (ast_get_extension_matchcid(p)) { fprintf(output, "exten => %s/%s,%d%s,%s(%s)\n", ast_get_extension_name(p), ast_get_extension_cidmatch(p), - ast_get_extension_priority(p), (label)?label:"", + ast_get_extension_priority(p), label, ast_get_extension_app(p), tempdata); - else + } else { fprintf(output, "exten => %s,%d%s,%s(%s)\n", ast_get_extension_name(p), - ast_get_extension_priority(p), (label)?label:"", + ast_get_extension_priority(p), label, ast_get_extension_app(p), tempdata); - if (tempdata) - free(tempdata); - if (label) - free(label); - } else + } + } else { fprintf(output, "exten => %s,hint,%s\n", ast_get_extension_name(p), ast_get_extension_app(p)); + } } p = ast_walk_extension_priorities(e, p);