clean up last commit ... most notably, there is no reason to do heap

allocations here, and it also included a potential memory leak


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@41269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2
Russell Bryant 19 years ago
parent c6d94b0d89
commit 41fad4887e

@ -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);

Loading…
Cancel
Save