diff options
author | Peter Wu <peter@lekensteyn.nl> | 2017-02-28 17:05:10 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-02-28 19:04:42 +0000 |
commit | 87b7242e69845db13daf570101903521e17cfd50 (patch) | |
tree | 4891ee9f6ad602b407e6295e4c71a53d34fb4457 /epan/dissectors/packet-radius.c | |
parent | 77d309c92fdd3e7826c12301d3d4ab3a56251b1b (diff) |
radius: fix memleaks of value_string
The value_string was taken from the GArray and added to
radius_attr_info_t, but these were not properly freed.
Change-Id: I8de2b84760887c41229a57881ff46cedcef1d22f
Reviewed-on: https://code.wireshark.org/review/20311
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-radius.c')
-rw-r--r-- | epan/dissectors/packet-radius.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/epan/dissectors/packet-radius.c b/epan/dissectors/packet-radius.c index c57aeae894..d396d5c38c 100644 --- a/epan/dissectors/packet-radius.c +++ b/epan/dissectors/packet-radius.c @@ -2141,10 +2141,18 @@ void free_radius_attr_info(gpointer data) { radius_attr_info_t* attr = (radius_attr_info_t*)data; + value_string *vs = (value_string *)attr->vs; g_free(attr->name); - if (attr->tlvs_by_id) + if (attr->tlvs_by_id) { g_hash_table_destroy(attr->tlvs_by_id); + } + if (vs) { + for (; vs->strptr; vs++) { + g_free((gpointer)vs->strptr); + } + g_free((gpointer)attr->vs); + } g_free(attr); } |