From afb0e2c53c4c17dfdb89d63b39db5101cc864704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= Date: Fri, 12 Dec 2014 14:31:27 +0100 Subject: [PATCH] libnm-core: mute coverity for RESOURCE_LEAK (CWE-772) in g_return_val_if_fail() Error: RESOURCE_LEAK (CWE-772): [#def10] NetworkManager-0.9.11.0/libnm-core/nm-setting-vlan.c:225: alloc_fn: Storage is returned from allocation function "priority_map_new_from_str". NetworkManager-0.9.11.0/libnm-core/nm-setting-vlan.c:154:4: alloc_fn: Storage is returned from allocation function "g_malloc0". NetworkManager-0.9.11.0/libnm-core/nm-setting-vlan.c:154:4: var_assign: Assigning: "p" = "g_malloc0(8UL)". NetworkManager-0.9.11.0/libnm-core/nm-setting-vlan.c:164:2: return_alloc: Returning allocated memory "p". NetworkManager-0.9.11.0/libnm-core/nm-setting-vlan.c:225: var_assign: Assigning: "item" = storage returned from "priority_map_new_from_str(map, str)". NetworkManager-0.9.11.0/libnm-core/nm-setting-vlan.c:226: leaked_storage: Variable "item" going out of scope leaks the storage it points to. Error: RESOURCE_LEAK (CWE-772): [#def11] NetworkManager-0.9.11.0/libnm-core/nm-utils.c:2056: alloc_fn: Storage is returned from allocation function "crypto_make_des_aes_key". NetworkManager-0.9.11.0/libnm-core/crypto.c:405:2: alloc_fn: Storage is returned from allocation function "g_malloc0". NetworkManager-0.9.11.0/libnm-core/crypto.c:405:2: var_assign: Assigning: "key" = "g_malloc0(digest_len + 1U)". NetworkManager-0.9.11.0/libnm-core/crypto.c:407:2: noescape: Resource "key" is not freed or pointed-to in function "crypto_md5_hash". NetworkManager-0.9.11.0/libnm-core/crypto.c:769:24: noescape: "crypto_md5_hash(char const *, gssize, char const *, gssize, char *, gsize)" does not free or save its pointer parameter "buffer". NetworkManager-0.9.11.0/libnm-core/crypto.c:415:2: return_alloc: Returning allocated memory "key". NetworkManager-0.9.11.0/libnm-core/nm-utils.c:2056: var_assign: Assigning: "key" = storage returned from "crypto_make_des_aes_key("DES-EDE3-CBC", &salt[0], salt_len, in_password, &key_len, NULL)". NetworkManager-0.9.11.0/libnm-core/nm-utils.c:2057: leaked_storage: Variable "key" going out of scope leaks the storage it points to. --- libnm-core/nm-setting-vlan.c | 3 ++- libnm-core/nm-utils.c | 4 +++- libnm-util/nm-setting-vlan.c | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c index 7b7ad91cf6..f622ddcbfd 100644 --- a/libnm-core/nm-setting-vlan.c +++ b/libnm-core/nm-setting-vlan.c @@ -223,7 +223,8 @@ nm_setting_vlan_add_priority_str (NMSettingVlan *setting, list = get_map (setting, map); item = priority_map_new_from_str (map, str); - g_return_val_if_fail (item != NULL, FALSE); + if (!item) + g_return_val_if_reached (FALSE); /* Duplicates get replaced */ for (iter = list; iter; iter = g_slist_next (iter)) { diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index 0f85e52a0e..4b284cfefd 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -2054,7 +2054,9 @@ nm_utils_rsa_key_encrypt (const guint8 *data, goto out; key = crypto_make_des_aes_key (CIPHER_DES_EDE3_CBC, &salt[0], salt_len, in_password, &key_len, NULL); - g_return_val_if_fail (key, NULL); + if (!key) + g_return_val_if_reached (NULL); + enc = crypto_encrypt (CIPHER_DES_EDE3_CBC, data, len, salt, salt_len, key, key_len, &enc_len, error); if (!enc) goto out; diff --git a/libnm-util/nm-setting-vlan.c b/libnm-util/nm-setting-vlan.c index f009629242..43b6a91c13 100644 --- a/libnm-util/nm-setting-vlan.c +++ b/libnm-util/nm-setting-vlan.c @@ -260,7 +260,8 @@ nm_setting_vlan_add_priority_str (NMSettingVlan *setting, list = get_map (setting, map); item = priority_map_new_from_str (map, str); - g_return_val_if_fail (item != NULL, FALSE); + if (!item) + g_return_val_if_reached (FALSE); /* Duplicates get replaced */ for (iter = list; iter; iter = g_slist_next (iter)) {