Issue #6383 - Crash on CLI originate with missing channel argument
[asterisk/asterisk.git] / res / res_clioriginate.c
index e325cc3..be97d0f 100644 (file)
@@ -64,7 +64,7 @@ static char orig_help[] =
 "used. If no extension is given, the 's' extension will be used.\n";
 
 static int handle_orig(int fd, int argc, char *argv[]);
-static char *complete_orig(char *line, char *word, int pos, int state);
+static char *complete_orig(const char *line, const char *word, int pos, int state);
 
 struct ast_cli_entry cli_orig = { { "originate", NULL }, handle_orig, "Originate a call", orig_help, complete_orig };
 
@@ -83,6 +83,10 @@ static int orig_app(const char *chan, const char *app, const char *appdata)
                return RESULT_FAILURE;
        }
        chantech = strsep(&chandata, "/");
+       if (!chandata) {
+               ast_log(LOG_ERROR, "No dial string.\n");
+               return RESULT_SHOWUSAGE;
+       }
 
        ast_pbx_outgoing_app(chantech, AST_FORMAT_SLINEAR, chandata, TIMEOUT * 1000, app, appdata, &reason, 1, NULL, NULL, NULL, NULL);
 
@@ -144,7 +148,7 @@ static int handle_orig(int fd, int argc, char *argv[])
        return res;
 }
 
-static char *complete_orig(char *line, char *word, int pos, int state)
+static char *complete_orig(const char *line, const char *word, int pos, int state)
 {
        int wordlen;
        char *app = "application";