diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index 92c6f64e1c..72a15f24dd 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -807,24 +807,26 @@ static int vtysh_rl_describe(void) fprintf(stdout, "\n"); + describe = cmd_describe_command(vline, vty, &ret); + /* Ambiguous and no match error. */ switch (ret) { case CMD_ERR_AMBIGUOUS: cmd_free_strvec(vline); + vector_free(describe); fprintf(stdout, "%% Ambiguous command.\n"); rl_on_new_line(); return 0; break; case CMD_ERR_NO_MATCH: cmd_free_strvec(vline); + vector_free(describe); fprintf(stdout, "%% There is no matched command.\n"); rl_on_new_line(); return 0; break; } - describe = cmd_describe_command(vline, vty, &ret); - /* Get width of command string. */ width = 0; for (i = 0; i < vector_active(describe); i++)