diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2014-11-05 14:48:43 +0100 |
---|---|---|
committer | Evan Huus <eapache@gmail.com> | 2014-11-06 05:06:19 +0000 |
commit | 3e34273b582874ad89e01c46a3ec437386df57b6 (patch) | |
tree | cf6cc5e1a892d2176136ebe303b0c965c34f96ac /epan/wslua/wslua_proto.c | |
parent | c321dc3f2e000213c8c626052e304e2a510c94a6 (diff) |
Lua: Fixed some memory leakages.
Change-Id: I5e14c2e5a3868ec40d1989876b06919aa9ece4a1
Reviewed-on: https://code.wireshark.org/review/5138
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
Diffstat (limited to 'epan/wslua/wslua_proto.c')
-rw-r--r-- | epan/wslua/wslua_proto.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c index 86780bbbb5..56fa8af6e8 100644 --- a/epan/wslua/wslua_proto.c +++ b/epan/wslua/wslua_proto.c @@ -2332,16 +2332,16 @@ WSLUA_METHOD DissectorTable_add (lua_State *L) { dissector_add_uint(dt->name, port, handle); } else { /* Not a number, try as range */ - gchar* pattern = g_strdup(luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN)); - range_t *range; + const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN); + range_t *range = NULL; if (range_convert_str(&range, pattern, G_MAXUINT32) == CVT_NO_ERROR) { dissector_add_uint_range(dt->name, range, handle); } else { - g_free (pattern); + g_free (range); WSLUA_ARG_ERROR(DissectorTable_add,PATTERN,"invalid integer or range"); return 0; } - g_free (pattern); + g_free (range); } } else { luaL_error(L,"Strange type %d for a DissectorTable",type); @@ -2396,14 +2396,16 @@ WSLUA_METHOD DissectorTable_set (lua_State *L) { } else { /* Not a number, try as range */ const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN); - range_t *range; + range_t *range = NULL; if (range_convert_str(&range, pattern, G_MAXUINT32) == CVT_NO_ERROR) { dissector_delete_all(dt->name, handle); dissector_add_uint_range(dt->name, range, handle); } else { + g_free (range); WSLUA_ARG_ERROR(DissectorTable_set,PATTERN,"invalid integer or range"); return 0; } + g_free (range); } } else { luaL_error(L,"Strange type %d for a DissectorTable",type); @@ -2448,16 +2450,16 @@ WSLUA_METHOD DissectorTable_remove (lua_State *L) { dissector_delete_uint(dt->name, port, handle); } else { /* Not a number, try as range */ - gchar* pattern = g_strdup(luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN)); - range_t *range; + const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN); + range_t *range = NULL; if (range_convert_str(&range, pattern, G_MAXUINT32) == CVT_NO_ERROR) dissector_delete_uint_range(dt->name, range, handle); else { - g_free (pattern); + g_free (range); WSLUA_ARG_ERROR(DissectorTable_remove,PATTERN,"invalid integer or range"); return 0; } - g_free (pattern); + g_free (range); } } |