Merge pull request #267 from opensourcerouting/vty-completion-again

vty completion memory counting redux
This commit is contained in:
Donald Sharp 2017-03-09 15:34:57 -05:00 committed by GitHub
commit a40ccc86af
2 changed files with 6 additions and 10 deletions

View File

@ -2445,11 +2445,8 @@ cmd_complete_command_real (vector vline, struct vty *vty, int *status, int islib
/* Only one matched */ /* Only one matched */
if (vector_slot (matchvec, 1) == NULL) if (vector_slot (matchvec, 1) == NULL)
{ {
size_t index_size = matchvec->alloced * sizeof (void *); match_str = (char **) matchvec->index;
match_str = XMALLOC (MTYPE_TMP, index_size); vector_only_wrapper_free (matchvec);
memcpy (match_str, matchvec->index, index_size);
vector_free (matchvec);
*status = CMD_COMPLETE_FULL_MATCH; *status = CMD_COMPLETE_FULL_MATCH;
return match_str; return match_str;
} }
@ -2491,11 +2488,8 @@ cmd_complete_command_real (vector vline, struct vty *vty, int *status, int islib
/* Make new matchvec. */ /* Make new matchvec. */
matchvec = vector_init (INIT_MATCHVEC_SIZE); matchvec = vector_init (INIT_MATCHVEC_SIZE);
vector_set (matchvec, lcdstr); vector_set (matchvec, lcdstr);
match_str = (char **) matchvec->index;
size_t index_size = matchvec->alloced * sizeof (void *); vector_only_wrapper_free (matchvec);
match_str = XMALLOC (MTYPE_TMP, index_size);
memcpy (match_str, matchvec->index, index_size);
vector_free (matchvec);
*status = CMD_COMPLETE_MATCH; *status = CMD_COMPLETE_MATCH;
return match_str; return match_str;

View File

@ -3195,6 +3195,8 @@ vty_terminate (void)
vty_reset (); vty_reset ();
vector_free (vtyvec); vector_free (vtyvec);
vector_free (Vvty_serv_thread); vector_free (Vvty_serv_thread);
vtyvec = NULL;
Vvty_serv_thread = NULL;
} }
} }