diff options
author | Tomasz Moń <desowin@gmail.com> | 2019-05-16 19:37:19 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2019-05-20 14:30:32 +0000 |
commit | 0955f15ba2a1b534212ba937a6e7ae1ffa508b76 (patch) | |
tree | e557009ef6785e5a05132033c1078db00721f218 | |
parent | b45e868e37ce18a9d672bc659088131cfbd461ee (diff) |
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 <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
-rw-r--r-- | extcap.c | 31 | ||||
-rw-r--r-- | extcap_parser.c | 34 | ||||
-rw-r--r-- | extcap_parser.h | 4 |
3 files changed, 26 insertions, 43 deletions
@@ -287,37 +287,6 @@ extcap_find_interface_for_ifname(const gchar *ifname) } static void -extcap_free_toolbar_value(iface_toolbar_value *value) -{ - if (!value) - { - return; - } - - g_free(value->value); - g_free(value->display); - g_free(value); -} - -static void -extcap_free_toolbar_control(iface_toolbar_control *control) -{ - if (!control) - { - return; - } - - g_free(control->display); - g_free(control->validation); - g_free(control->tooltip); - 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); -} - -static void extcap_free_toolbar(gpointer data) { if (!data) 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) { diff --git a/extcap_parser.h b/extcap_parser.h index a05f4de6ae..1a728da3d8 100644 --- a/extcap_parser.h +++ b/extcap_parser.h @@ -15,6 +15,7 @@ #include <string.h> #include <config.h> +#include "ui/iface_toolbar.h" typedef enum { EXTCAP_SENTENCE_UNKNOWN, @@ -184,6 +185,9 @@ gboolean extcap_compare_is_default(extcap_arg *element, extcap_complex *test); /* Free a single argument */ void extcap_free_arg(extcap_arg *a); +/* Free entire toolbar control structure */ +void extcap_free_toolbar_control(iface_toolbar_control *control); + /* Free an entire arg list */ void extcap_free_arg_list(GList *a); |