diff options
author | Peter Wu <peter@lekensteyn.nl> | 2019-01-25 15:15:12 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-01-26 07:42:00 +0000 |
commit | 728183c27e778ada5a329a55353b09a83d11ceac (patch) | |
tree | fdf9f76f2d2b474dce74780fdd9022254b441aa0 | |
parent | 3ee9c0facf758908236ee43e0effe3b6afdbdf68 (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.c | 3 | ||||
-rw-r--r-- | epan/wslua/wslua_frame_info.c | 2 |
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); |