From 8120a6822837b55602107c73594e346e4a6ab81f Mon Sep 17 00:00:00 2001 From: "Leandro A. F. Pereira" Date: Mon, 30 Jun 2008 23:19:32 -0300 Subject: Plug memleak --- hardinfo2/arch/linux/common/resources.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'hardinfo2/arch') diff --git a/hardinfo2/arch/linux/common/resources.h b/hardinfo2/arch/linux/common/resources.h index be6a1e35..e669b0ec 100644 --- a/hardinfo2/arch/linux/common/resources.h +++ b/hardinfo2/arch/linux/common/resources.h @@ -37,15 +37,15 @@ static gchar *_resource_obtain_name(gchar *name) if (g_regex_match(_regex_pci, name, 0, NULL)) { temp = module_call_method_param("devices::getPCIDeviceDescription", name); - return temp ? temp : name; + return temp ? temp : g_strdup(name); } if (g_regex_match(_regex_module, name, 0, NULL)) { temp = module_call_method_param("computer::getKernelModuleDescription", name); - return temp ? temp : name; + return temp ? temp : g_strdup(name); } - return name; + return g_strdup(name); } #else static gchar *_resource_obtain_name(gchar *name) @@ -68,11 +68,13 @@ void scan_device_resources(gboolean reload) while (fgets(buffer, 256, io)) { gchar **temp = g_strsplit(buffer, ":", 2); + gchar *name = _resource_obtain_name(temp[1]); _resources = h_strdup_cprintf("%s=%s\n", _resources, - temp[0], _resource_obtain_name(temp[1])); + temp[0], name); g_strfreev(temp); + g_free(name); } fclose(io); @@ -83,11 +85,13 @@ void scan_device_resources(gboolean reload) while (fgets(buffer, 256, io)) { gchar **temp = g_strsplit(buffer, ":", 2); + gchar *name = _resource_obtain_name(temp[1]); _resources = h_strdup_cprintf("%s=%s\n", _resources, - temp[0], _resource_obtain_name(temp[1])); + temp[0], name); g_strfreev(temp); + g_free(name); } fclose(io); @@ -98,11 +102,13 @@ void scan_device_resources(gboolean reload) while (fgets(buffer, 256, io)) { gchar **temp = g_strsplit(buffer, ":", 2); + gchar *name = _resource_obtain_name(temp[1]); _resources = h_strdup_cprintf("%s=%s\n", _resources, - temp[0], _resource_obtain_name(temp[1])); + temp[0], name); g_strfreev(temp); + g_free(name); } fclose(io); -- cgit v1.2.3