aboutsummaryrefslogtreecommitdiffstats
path: root/epan/wslua
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-07-09 01:56:27 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-07-09 01:56:27 +0000
commit45e9efc6a915f8c5b7874911c8836c9b7fdda7f5 (patch)
tree980adfbed6d1bac14a195b620b72da7c909378e9 /epan/wslua
parent1ae38887b67ecf14e4c36ca9817d2941b3b73f7b (diff)
From Evan Huus:
Fix leaks - don't g_strdup a string just to use it in a g_strdup_printf - clean up properly in error cases in lua bindings - misc. other missing g_free() calls - one missing fclose() in the new 80211_utils https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7454 svn path=/trunk/; revision=43617
Diffstat (limited to 'epan/wslua')
-rw-r--r--epan/wslua/wslua_proto.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c
index a345ccebe5..db1c3a92a0 100644
--- a/epan/wslua/wslua_proto.c
+++ b/epan/wslua/wslua_proto.c
@@ -618,12 +618,18 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) { /* Creates a new field to be us
f->type = get_ftenum(luaL_checkstring(L,WSLUA_ARG_ProtoField_new_TYPE));
/*XXX do it better*/
- if (f->type == FT_NONE)
+ if (f->type == FT_NONE) {
+ g_free(f->name);
+ g_free(f->abbr);
+ g_free(f);
WSLUA_ARG_ERROR(ProtoField_new,TYPE,"invalid ftypes");
+ }
if (proto_check_field_name(f->abbr)) {
- WSLUA_ARG_ERROR(ProtoField_new,ABBR,"Invalid char in abbrev");
- return 0;
+ g_free(f->name);
+ g_free(f->abbr);
+ g_free(f);
+ WSLUA_ARG_ERROR(ProtoField_new,ABBR,"Invalid char in abbrev");
}
if (! lua_isnil(L,WSLUA_OPTARG_ProtoField_new_VOIDSTRING) ) {
@@ -639,6 +645,8 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) { /* Creates a new field to be us
} else if (tfs) {
f->vs = TFS(tfs);
} else {
+ g_free(f->name);
+ g_free(f->abbr);
g_free(f);
return 0;
}