diff options
author | David Lamparter <equinox@opensourcerouting.org> | 2017-03-09 19:23:00 +0100 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2017-03-09 19:23:00 +0100 |
commit | 4dcee34bd603645e53f8a8265dd263a85422b63d (patch) | |
tree | d209ae03c37c4fcc8afef77b833a4cdf6cec9905 /lib/command.c | |
parent | Merge pull request #259 from opensourcerouting/vtysh-completion-mtype-underflow (diff) | |
download | frr-4dcee34bd603645e53f8a8265dd263a85422b63d.tar.xz frr-4dcee34bd603645e53f8a8265dd263a85422b63d.zip |
Revert "lib: Fix tab completions memleak, memory stats corruption"
This reverts commit 039dc61292de5f3ed5f46316b1940ab6bb184c3f.
The patch actually made the situation worse since the return value from
cmd_complete_command_real() was now inconsistently allocated from
different memory stat pools.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to '')
-rw-r--r-- | lib/command.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/lib/command.c b/lib/command.c index 6176640bf..c9b261cf2 100644 --- a/lib/command.c +++ b/lib/command.c @@ -2445,11 +2445,8 @@ cmd_complete_command_real (vector vline, struct vty *vty, int *status, int islib /* Only one matched */ if (vector_slot (matchvec, 1) == NULL) { - size_t index_size = matchvec->alloced * sizeof (void *); - match_str = XMALLOC (MTYPE_TMP, index_size); - memcpy (match_str, matchvec->index, index_size); - vector_free (matchvec); - + match_str = (char **) matchvec->index; + vector_only_wrapper_free (matchvec); *status = CMD_COMPLETE_FULL_MATCH; return match_str; } @@ -2491,11 +2488,8 @@ cmd_complete_command_real (vector vline, struct vty *vty, int *status, int islib /* Make new matchvec. */ matchvec = vector_init (INIT_MATCHVEC_SIZE); vector_set (matchvec, lcdstr); - - size_t index_size = matchvec->alloced * sizeof (void *); - match_str = XMALLOC (MTYPE_TMP, index_size); - memcpy (match_str, matchvec->index, index_size); - vector_free (matchvec); + match_str = (char **) matchvec->index; + vector_only_wrapper_free (matchvec); *status = CMD_COMPLETE_MATCH; return match_str; |