From bd352e0827f9df2290599bb6bcb2f819ca7b5ee6 Mon Sep 17 00:00:00 2001 From: Kinsey Moore <kmoore@digium.com> Date: Thu, 15 Aug 2013 16:37:06 +0000 Subject: [PATCH] Remove leading spaces from the CLI command before parsing If you've mistakenly put a space before typing in a command, the leading space will be included as part of the command, and the command parser will not find the corresponding command. This patch rectifies that situation by stripping the leading spaces on commands. Review: https://reviewboard.asterisk.org/r/2709/ Patch-by: Tilghman Lesher ........ Merged revisions 396745 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 396746 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396747 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/asterisk.c | 5 +++++ main/cli.c | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/main/asterisk.c b/main/asterisk.c index beed010831..07186f655f 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -2112,6 +2112,11 @@ static int remoteconsolehandler(char *s) /* Called when readline data is available */ if (!ast_all_zeros(s)) ast_el_add_history(s); + + while (isspace(*s)) { + s++; + } + /* The real handler for bang */ if (s[0] == '!') { if (s[1]) diff --git a/main/cli.c b/main/cli.c index dd9f3bcd07..54efd6f4cd 100644 --- a/main/cli.c +++ b/main/cli.c @@ -2292,6 +2292,13 @@ static char *parse_args(const char *s, int *argc, const char *argv[], int max, i return NULL; cur = duplicate; + + /* Remove leading spaces from the command */ + while (isspace(*s)) { + cur++; + s++; + } + /* scan the original string copying into cur when needed */ for (; *s ; s++) { if (x >= max - 1) { -- GitLab