aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2019-01-25 15:15:12 +0100
committerAnders Broman <a.broman58@gmail.com>2019-01-26 07:42:00 +0000
commit728183c27e778ada5a329a55353b09a83d11ceac (patch)
treefdf9f76f2d2b474dce74780fdd9022254b441aa0
parent3ee9c0facf758908236ee43e0effe3b6afdbdf68 (diff)
wslua_file_handler: fix leak of opt_comment
Since v2.9.1rc0-528-g31aba351e2, it is clear that wtap file formats should free earlier comments before writing a new one. Do so. Fixes leaks reported by ASAN for test_wslua_file_acme_reader. Change-Id: Iafb643f01f5973f2d3b88f244ee70e8c0c451080 Reviewed-on: https://code.wireshark.org/review/31738 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/wslua/wslua_file_handler.c3
-rw-r--r--epan/wslua/wslua_frame_info.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/epan/wslua/wslua_file_handler.c b/epan/wslua/wslua_file_handler.c
index d321fc3e1f..f9bf5edebb 100644
--- a/epan/wslua/wslua_file_handler.c
+++ b/epan/wslua/wslua_file_handler.c
@@ -262,6 +262,7 @@ wslua_filehandler_read(wtap *wth, int *err, gchar **err_info,
*err = errno = 0;
}
+ g_free(wth->rec.opt_comment);
wth->rec.opt_comment = NULL;
fp = push_File(L, wth->fh);
@@ -318,6 +319,8 @@ wslua_filehandler_seek_read(wtap *wth, gint64 seek_off,
if (err) {
*err = errno = 0;
}
+
+ g_free(wth->rec.opt_comment);
rec->opt_comment = NULL;
fp = push_File(L, wth->random_fh);
diff --git a/epan/wslua/wslua_frame_info.c b/epan/wslua/wslua_frame_info.c
index fa6359c6cf..5498e30b15 100644
--- a/epan/wslua/wslua_frame_info.c
+++ b/epan/wslua/wslua_frame_info.c
@@ -207,7 +207,7 @@ WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,original_length,rec->rec_header.pa
WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfo,encap,rec->rec_header.packet_header.pkt_encap);
WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,encap,rec->rec_header.packet_header.pkt_encap,int);
-// XXX rec->opt_comment is glib-allocated memory, rec is wtap_rec. What frees it?
+// rec->opt_comment will be freed by wtap_sequential_close -> wtap_rec_cleanup.
/* WSLUA_ATTRIBUTE FrameInfo_comment RW A string comment for the packet, if the
`wtap_presence_flags.COMMENTS` was set in the presence flags; nil if there is no comment. */
WSLUA_ATTRIBUTE_NAMED_STRING_GETTER(FrameInfo,comment,rec->opt_comment);