From ed101a5319cb83dcbc7bab0b64a0c6e8aa69772c Mon Sep 17 00:00:00 2001
From: Jason Parker <jparker@digium.com>
Date: Wed, 27 Jun 2007 22:27:09 +0000
Subject: [PATCH] Fix a segfault when trying to tab complete the "core show
 uptime" command.

Reported in #asterisk-dev on IRC by jcmoore, fixed by me.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@72326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/cli.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/main/cli.c b/main/cli.c
index e2ddeb3c88..7607793ae0 100644
--- a/main/cli.c
+++ b/main/cli.c
@@ -387,7 +387,7 @@ static char * handle_showuptime(struct ast_cli_entry *e, int cmd, struct ast_cli
 
 	switch (cmd) {
         case CLI_INIT:
-		e->command = "core show uptime";
+		e->command = "core show uptime [seconds]";
 		e->usage =
 			"Usage: core show uptime [seconds]\n"
 			"       Shows Asterisk uptime information.\n"
@@ -395,12 +395,12 @@ static char * handle_showuptime(struct ast_cli_entry *e, int cmd, struct ast_cli
 		return NULL;
 
 	case CLI_GENERATE:
-		return (a->pos > e->args || a->n > 0) ? NULL : "seconds";
+		return NULL;
 	}
 	/* regular handler */
-	if (a->argc == e->args+1 && !strcasecmp(a->argv[e->args],"seconds"))
+	if (a->argc == e->args && !strcasecmp(a->argv[e->args-1],"seconds"))
 		printsec = 1;
-	else if (a->argc == e->args)
+	else if (a->argc == e->args-1)
 		printsec = 0;
 	else
 		return CLI_SHOWUSAGE;
-- 
GitLab