aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2015-12-23 08:41:07 +0100
committerStig Bjørlykke <stig@bjorlykke.org>2015-12-23 08:45:50 +0000
commit976642ab0a6099010d08113fe4080010d39ab766 (patch)
tree7993d31f5434e585981cd0c523b63569b7b48ce9 /ui
parentab754d6ba4c0bc6d8d00aec137d8b1e97331d1f4 (diff)
ui: Plug memory leak in decode_build_reset_list.
The strings passed to decode_build_reset_list() is not freed, so ensure we cleanup in decode_clear_all(). Change-Id: Ib68bde71403e260199482831272beb161fe033f9 Reviewed-on: https://code.wireshark.org/review/12836 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'ui')
-rw-r--r--ui/decode_as_utils.c11
-rw-r--r--ui/gtk/decode_as_dlg.c2
2 files changed, 7 insertions, 6 deletions
diff --git a/ui/decode_as_utils.c b/ui/decode_as_utils.c
index 93e165bb58..22ff62ab26 100644
--- a/ui/decode_as_utils.c
+++ b/ui/decode_as_utils.c
@@ -146,8 +146,7 @@ read_set_decode_as_entries(gchar *key, const gchar *value,
}
}
if (is_valid) {
- decode_build_reset_list(g_strdup(values[0]), selector_type,
- g_strdup(values[1]), NULL, NULL);
+ decode_build_reset_list(values[0], selector_type, values[1], NULL, NULL);
}
} else {
retval = PREFS_SET_SYNTAX_ERR;
@@ -183,13 +182,13 @@ load_decode_as_entries(void)
void
decode_build_reset_list (const gchar *table_name, ftenum_t selector_type,
- gpointer key, gpointer value _U_,
+ const gpointer key, gpointer value _U_,
gpointer user_data _U_)
{
dissector_delete_item_t *item;
item = g_new(dissector_delete_item_t,1);
- item->ddi_table_name = table_name;
+ item->ddi_table_name = g_strdup(table_name);
item->ddi_selector_type = selector_type;
switch (selector_type) {
@@ -204,7 +203,7 @@ decode_build_reset_list (const gchar *table_name, ftenum_t selector_type,
case FT_STRINGZ:
case FT_UINT_STRING:
case FT_STRINGZPAD:
- item->ddi_selector.sel_string = (char *)key;
+ item->ddi_selector.sel_string = g_strdup((char *)key);
break;
default:
@@ -240,11 +239,13 @@ decode_clear_all(void)
case FT_STRINGZPAD:
dissector_reset_string(item->ddi_table_name,
item->ddi_selector.sel_string);
+ g_free(item->ddi_selector.sel_string);
break;
default:
g_assert_not_reached();
}
+ g_free((gchar *)item->ddi_table_name);
g_free(item);
}
g_slist_free(dissector_reset_list);
diff --git a/ui/gtk/decode_as_dlg.c b/ui/gtk/decode_as_dlg.c
index a0707783d9..64eb232b14 100644
--- a/ui/gtk/decode_as_dlg.c
+++ b/ui/gtk/decode_as_dlg.c
@@ -685,7 +685,7 @@ decode_simple (GtkWidget *notebook_pg)
if (add_reset_list) {
selector_type = g_new(guint,1);
*selector_type = GPOINTER_TO_UINT(value_ptr);
- decode_build_reset_list(g_strdup(table_name), FT_UINT32, selector_type, NULL, NULL);
+ decode_build_reset_list(table_name, FT_UINT32, selector_type, NULL, NULL);
}
}