diff options
author | Peter Wu <peter@lekensteyn.nl> | 2019-01-25 18:02:46 +0100 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2019-01-27 09:40:56 +0000 |
commit | 311d087bbdec5e6a93d740327fdff82ad6a13dde (patch) | |
tree | e124f27e5ca6528a25e9609a2c45e3c6df61f108 /epan/wslua | |
parent | a1ee099ffa76ee54bc12564979790ce917914981 (diff) |
wslua_listener: fix memleak in tap packet callback
Addresses memleaks reported by ASAN for:
test_wslua_listener
test_wslua_nstime
test_wslua_pinfo
test_wslua_field
Change-Id: I221382844ee0bfd7ffc274bbb27eded0e221f9cf
Reviewed-on: https://code.wireshark.org/review/31742
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'epan/wslua')
-rw-r--r-- | epan/wslua/wslua_listener.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/wslua/wslua_listener.c b/epan/wslua/wslua_listener.c index 2f86ac89b5..289e1622e9 100644 --- a/epan/wslua/wslua_listener.c +++ b/epan/wslua/wslua_listener.c @@ -71,6 +71,7 @@ static int tap_packet_cb_error_handler(lua_State* L) { static tap_packet_status lua_tap_packet(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const void *data) { Listener tap = (Listener)tapdata; tap_packet_status retval = TAP_PACKET_DONT_REDRAW; + TreeItem lua_tree_tap; if (tap->packet_ref == LUA_NOREF) return TAP_PACKET_DONT_REDRAW; /* XXX - report error and return TAP_PACKET_FAILED? */ @@ -90,7 +91,8 @@ static tap_packet_status lua_tap_packet(void *tapdata, packet_info *pinfo, epan_ lua_pinfo = pinfo; lua_tvb = edt->tvb; - lua_tree = create_TreeItem(edt->tree, NULL); + lua_tree_tap = create_TreeItem(edt->tree, NULL); + lua_tree = lua_tree_tap; switch ( lua_pcall(tap->L,3,1,1) ) { case 0: @@ -115,6 +117,7 @@ static tap_packet_status lua_tap_packet(void *tapdata, packet_info *pinfo, epan_ lua_pinfo = NULL; lua_tvb = NULL; lua_tree = NULL; + g_free(lua_tree_tap); return retval; } |