From: Mark Michelson Date: Tue, 11 Dec 2012 20:48:16 +0000 (+0000) Subject: Fix crash that can occur if CLI registration fails for an aliased command. X-Git-Tag: 10.12.0-rc2~3^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=38253a70d25b502a65b3d7a93b0eabde421d67bb;p=thirdparty%2Fasterisk.git Fix crash that can occur if CLI registration fails for an aliased command. A recent memory leak fix in main/cli.c causes an ast_cli_entry's command field to be freed and NULLed if ast_cli_register() fails. res_clialiases was ignoring the return value of ast_cli_register() and was then passing the NULL command off to a a hash function. This resulted in a crash. The fix is not to ignore the erroneous return value. If ast_cli_register() fails, then we do not continue trying to process the current alias. ........ Merged revisions 377840 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@377842 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_clialiases.c b/res/res_clialiases.c index d67f3ba39b..bb1a78d3b7 100644 --- a/res/res_clialiases.c +++ b/res/res_clialiases.c @@ -209,7 +209,10 @@ static void load_config(int reload) alias->cli_entry.command = alias->alias; alias->cli_entry.usage = "Aliased CLI Command\n"; - ast_cli_register(&alias->cli_entry); + if (ast_cli_register(&alias->cli_entry)) { + ao2_ref(alias, -1); + continue; + } ao2_link(cli_aliases, alias); ast_verbose(VERBOSE_PREFIX_2 "Aliased CLI command '%s' to '%s'\n", v1->name, v1->value); ao2_ref(alias, -1);