aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_clialiases.c
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-06 14:37:32 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2009-05-06 14:37:32 +0000
commit0eea069b39dcacb6746eea9b7c9384c70cf752c2 (patch)
tree52cf4d2442bf5a3be26de15295486c1867ebc934 /res/res_clialiases.c
parentf3f7a9f9cca3ebe8edf6d332cd09959fc0ef0334 (diff)
Merged revisions 192700 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r192700 | file | 2009-05-06 11:35:47 -0300 (Wed, 06 May 2009) | 5 lines Fix an infinite loop with tab completion of CLI aliases that reference themselves. (closes issue #15020) Reported by: junky ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@192701 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_clialiases.c')
-rw-r--r--res/res_clialiases.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/res/res_clialiases.c b/res/res_clialiases.c
index 156212f6b..d7e38bbd7 100644
--- a/res/res_clialiases.c
+++ b/res/res_clialiases.c
@@ -98,7 +98,9 @@ static char *cli_alias_passthrough(struct ast_cli_entry *e, int cmd, struct ast_
case CLI_GENERATE:
line = a->line;
line += (strlen(alias->alias));
- if (!ast_strlen_zero(a->word)) {
+ if (!strncmp(alias->alias, alias->real_cmd, strlen(alias->alias))) {
+ generator = NULL;
+ } else if (!ast_strlen_zero(a->word)) {
struct ast_str *real_cmd = ast_str_alloca(strlen(alias->real_cmd) + strlen(line) + 1);
ast_str_append(&real_cmd, 0, "%s%s", alias->real_cmd, line);
generator = ast_cli_generator(ast_str_buffer(real_cmd), a->word, a->n);