diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2008-06-30 23:19:32 -0300 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2008-06-30 23:19:32 -0300 |
commit | 8120a6822837b55602107c73594e346e4a6ab81f (patch) | |
tree | 291e40522ab028e24c3ee83235da09e74b5485d4 /hardinfo2/arch/linux | |
parent | e0251d6c31ba4e15d27a281747771b66decaf849 (diff) |
Plug memleak
Diffstat (limited to 'hardinfo2/arch/linux')
-rw-r--r-- | hardinfo2/arch/linux/common/resources.h | 18 |
1 files changed, 12 insertions, 6 deletions
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); |