From 550434a0265a3c9984a60da9da8b0a3529f38d50 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 27 May 2021 10:34:39 +0200 Subject: [PATCH] cli: workaround coverity false positive in "devices.c" Error: RESOURCE_LEAK (CWE-772): [#def268] [important] NetworkManager-1.31.5/src/nmcli/devices.c:1367: alloc_fn: Storage is returned from allocation function "g_string_free". NetworkManager-1.31.5/src/nmcli/devices.c:1367: leaked_storage: Ignoring storage allocated by "g_string_free(security_str, 0)" leaks it. # 1365| g_ptr_array_add(info->output_data, arr); # 1366| # 1367|-> g_string_free(security_str, FALSE); # 1368| } # 1369| Error: RESOURCE_LEAK (CWE-772): [#def269] [important] NetworkManager-1.31.5/src/nmcli/devices.c:1451: alloc_fn: Storage is returned from allocation function "g_string_free". NetworkManager-1.31.5/src/nmcli/devices.c:1451: leaked_storage: Ignoring storage allocated by "g_string_free(slaves_str, 0)" leaks it. # 1449| print_data(&nmc->nmc_config, &nmc->pager_data, out_indices, NULL, 0, &out); # 1450| # 1451|-> g_string_free(slaves_str, FALSE); # 1452| # 1453| return TRUE; Error: RESOURCE_LEAK (CWE-772): [#def270] [important] NetworkManager-1.31.5/src/nmcli/devices.c:1517: alloc_fn: Storage is returned from allocation function "g_string_free". NetworkManager-1.31.5/src/nmcli/devices.c:1517: leaked_storage: Ignoring storage allocated by "g_string_free(slaves_str, 0)" leaks it. # 1515| print_data(&nmc->nmc_config, &nmc->pager_data, out_indices, NULL, 0, &out); # 1516| # 1517|-> g_string_free(slaves_str, FALSE); # 1518| # 1519| return TRUE; --- src/nmcli/devices.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/nmcli/devices.c b/src/nmcli/devices.c index 9a22e5f77..07a2d1fd0 100644 --- a/src/nmcli/devices.c +++ b/src/nmcli/devices.c @@ -1348,7 +1348,7 @@ fill_output_access_point(gpointer data, gpointer user_data) set_val_str(arr, 7, bitrate_str); set_val_str(arr, 8, strength_str); set_val_strc(arr, 9, sig_bars); - set_val_str(arr, 10, security_str->str); + set_val_str(arr, 10, g_string_free(security_str, FALSE)); set_val_str(arr, 11, wpa_flags_str); set_val_str(arr, 12, rsn_flags_str); set_val_strc(arr, 13, info->device); @@ -1363,8 +1363,6 @@ fill_output_access_point(gpointer data, gpointer user_data) arr[15].color = NM_META_COLOR_CONNECTION_ACTIVATED; g_ptr_array_add(info->output_data, arr); - - g_string_free(security_str, FALSE); } static char * @@ -1442,14 +1440,12 @@ print_bond_bridge_info(NMDevice * device, arr = nmc_dup_fields_array(tmpl, NMC_OF_FLAG_SECTION_PREFIX); set_val_strc(arr, 0, group_prefix); /* i.e. BOND, TEAM, BRIDGE */ - set_val_str(arr, 1, slaves_str->str); + set_val_str(arr, 1, g_string_free(slaves_str, FALSE)); g_ptr_array_add(out.output_data, arr); print_data_prepare_width(out.output_data); print_data(&nmc->nmc_config, &nmc->pager_data, out_indices, NULL, 0, &out); - g_string_free(slaves_str, FALSE); - return TRUE; } @@ -1507,15 +1503,13 @@ print_team_info(NMDevice *device, NmCli *nmc, const char *group_prefix, const ch arr = nmc_dup_fields_array(tmpl, NMC_OF_FLAG_SECTION_PREFIX); set_val_strc(arr, 0, group_prefix); /* TEAM */ - set_val_str(arr, 1, slaves_str->str); + set_val_str(arr, 1, g_string_free(slaves_str, FALSE)); set_val_str(arr, 2, sanitize_team_config(nm_device_team_get_config(NM_DEVICE_TEAM(device)))); g_ptr_array_add(out.output_data, arr); print_data_prepare_width(out.output_data); print_data(&nmc->nmc_config, &nmc->pager_data, out_indices, NULL, 0, &out); - g_string_free(slaves_str, FALSE); - return TRUE; }