[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-bluetooth
Subject: [BlueZ v2 20/20] main: Simplify variable assignment
From: Bastien Nocera <hadess () hadess ! net>
Date: 2024-05-10 12:10:30
Message-ID: 20240510121355.3241456-21-hadess () hadess ! net
[Download RAW message or body]
Error: RESOURCE_LEAK (CWE-772): [#def39] [important]
bluez-5.75/src/main.c:425:2: alloc_fn: Storage is returned from allocation function \
"g_key_file_get_string". bluez-5.75/src/main.c:425:2: var_assign: Assigning: "tmp" = \
storage returned from "g_key_file_get_string(config, group, key, &err)". \
bluez-5.75/src/main.c:433:2: noescape: Assuming resource "tmp" is not freed or \
pointed-to as ellipsis argument to "btd_debug". bluez-5.75/src/main.c:440:2: \
leaked_storage: Variable "tmp" going out of scope leaks the storage it points to. \
438| } 439|
440|-> return true;
441| }
442|
---
src/main.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/main.c b/src/main.c
index ac840d684f6d..a31740179941 100644
--- a/src/main.c
+++ b/src/main.c
@@ -420,9 +420,10 @@ static bool parse_config_string(GKeyFile *config, const char \
*group, const char *key, char **val)
{
GError *err = NULL;
- char *tmp;
- tmp = g_key_file_get_string(config, group, key, &err);
+ g_return_val_if_fail(val, false);
+
+ *val = g_key_file_get_string(config, group, key, &err);
if (err) {
if (err->code != G_KEY_FILE_ERROR_KEY_NOT_FOUND)
DBG("%s", err->message);
@@ -430,12 +431,7 @@ static bool parse_config_string(GKeyFile *config, const char \
*group, return false;
}
- DBG("%s.%s = %s", group, key, tmp);
-
- if (val) {
- g_free(*val);
- *val = tmp;
- }
+ DBG("%s.%s = %s", group, key, *val);
return true;
}
--
2.44.0
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic