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
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@43617
f5534014-38df-0310-8fa8-
9805f1628bb7
*/
pwd = getpwuid(getuid());
if (pwd != NULL) {
- /*
- * This is cached, so we don't need to worry
- * about allocating multiple ones of them.
- */
- homedir = g_strdup(pwd->pw_dir);
- } else
+ homedir = pwd->pw_dir;
+ } else {
homedir = "/tmp";
+ }
}
persconffile_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", homedir, PF_DIR);
#endif
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) ) {
} else if (tfs) {
f->vs = TFS(tfs);
} else {
+ g_free(f->name);
+ g_free(f->abbr);
g_free(f);
return 0;
}
else
drops[commas / 2].drop_seg_start = num;
}
-
+ g_free(save);
}
list = g_list_next(list);
+ g_free(payload_type);
}
submenu_recent_files = gtk_ui_manager_get_widget(ui_manager_main_menubar, MENU_RECENT_FILES_PATH);
if(!submenu_recent_files){
g_warning("add_menu_recent_capture_file_absolute: No submenu_recent_files found, path= MENU_RECENT_FILES_PATH");
+ g_free(normalized_cf_name);
return;
}
recent_files_list = g_object_get_data(G_OBJECT(submenu_recent_files), "recent-files-list");
str = g_strdup_printf("%s and %s", strtmp, filter);
} else {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "Could not acquire information to build a filter!\nTry expanding or choosing another item.");
+ g_free(strtmp);
return;
}
iface->channel_types = 1 << WS80211_CHAN_NO_HT;
if (tb_msg[NL80211_ATTR_WIPHY_NAME]) {
- char *phyname;
- phyname = g_strdup(nla_get_string(tb_msg[NL80211_ATTR_WIPHY_NAME]));
- iface->ifname = g_strdup_printf("%s.mon", phyname);
+ iface->ifname = g_strdup_printf("%s.mon",
+ nla_get_string(tb_msg[NL80211_ATTR_WIPHY_NAME]));
}
nla_for_each_nested(nl_band, tb_msg[NL80211_ATTR_WIPHY_BANDS], rem_band) {
ret = fgets(line, sizeof(line), fh);
if (ret == NULL) {
fprintf(stderr, "Error parsing /proc/net/dev");
+ fclose(fh);
return -1;
}
}