From 0955f15ba2a1b534212ba937a6e7ae1ffa508b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Thu, 16 May 2019 19:37:19 +0200 Subject: extcap: Fix memory leak in extcap_free_toolbar_control() Remove duplicate defition of extcap_free_toolbar_control() and extcap_free_toolbar_value(). Change-Id: Ia4c8ca6160017d769616579db158419426e664b7 Reviewed-on: https://code.wireshark.org/review/33224 Petri-Dish: Peter Wu Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu --- extcap_parser.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'extcap_parser.c') diff --git a/extcap_parser.c b/extcap_parser.c index 44ca9bfd56..efc0e2c842 100644 --- a/extcap_parser.c +++ b/extcap_parser.c @@ -281,24 +281,34 @@ void extcap_free_arg(extcap_arg *a) { g_free(a); } -static void extcap_free_toolbar_value(iface_toolbar_value *v) { - if (v == NULL) +static void extcap_free_toolbar_value(iface_toolbar_value *value) +{ + if (value == NULL) + { return; + } - g_free(v->value); - g_free(v->display); - g_free(v); + g_free(value->value); + g_free(value->display); + g_free(value); } -static void extcap_free_toolbar_control(iface_toolbar_control *c) { - if (c == NULL) +void extcap_free_toolbar_control(iface_toolbar_control *control) +{ + if (control == NULL) + { return; + } - g_free(c->display); - g_free(c->validation); - g_free(c->tooltip); - g_free(c->placeholder); - g_free(c); + g_free(control->display); + g_free(control->validation); + g_free(control->tooltip); + g_free(control->placeholder); + if (control->ctrl_type == INTERFACE_TYPE_STRING) { + g_free(control->default_value.string); + } + g_list_free_full(control->values, (GDestroyNotify)extcap_free_toolbar_value); + g_free(control); } void extcap_free_arg_list(GList *a) { -- cgit v1.2.3