]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Wed, 30 Aug 2006 00:03:06 +0000 (00:03 +0000)
committerAutomerge script <automerge@asterisk.org>
Wed, 30 Aug 2006 00:03:06 +0000 (00:03 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@41301 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/pbx_config.c

index fcc80cb917093f6d3d8d97e5a66ae621d9f0cb9f..2a060e1ad90dc948aa0188cecee811c4dd858b4f 100644 (file)
@@ -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);