From ab914252662209d1218c709d2efbf630962f930c Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sat, 3 Dec 2022 07:16:36 -0500 Subject: [PATCH] vtysh: Cleanup memory leak When multiple daemons report a exit line for the same node, vtysh was just dropping the previous pointer. Ensure that we free it first. Signed-off-by: Donald Sharp --- vtysh/vtysh_config.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c index ac0cdc6ffd..ac32f0a774 100644 --- a/vtysh/vtysh_config.c +++ b/vtysh/vtysh_config.c @@ -348,9 +348,13 @@ void vtysh_config_parse_line(void *arg, const char *line) break; default: if (strncmp(line, "exit", strlen("exit")) == 0) { - if (config) + if (config) { + if (config->exit) + XFREE(MTYPE_VTYSH_CONFIG_LINE, + config->exit); config->exit = XSTRDUP(MTYPE_VTYSH_CONFIG_LINE, line); + } } else if (strncmp(line, "interface", strlen("interface")) == 0) config = config_get(INTERFACE_NODE, line); else if (strncmp(line, "pseudowire", strlen("pseudowire")) == 0)