From 0145965cc453e674c7c532ea5dd23ef8d7f0f8ce Mon Sep 17 00:00:00 2001 From: Enrico Joerns Date: Tue, 1 Mar 2022 22:26:32 +0100 Subject: [PATCH] src/config_file: NULL the variant_data more safely and checker-friendly Setting variant_data = NULL when checking for GError is valid as key_file_consume_string() returns NULL on error. However, this can confuse static checkers as Coverity that assume that variant_data might have pointed to memory before. Thus, to be safe, use g_clear_pointer() that would free any previous data. Fixes coverity issue: | CID 1445500 (#4 of 4): Resource leak (RESOURCE_LEAK) | 19. overwrite_var: Overwriting variant_data in variant_data = NULL leaks the storage that variant_data points to. Signed-off-by: Enrico Joerns --- src/config_file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config_file.c b/src/config_file.c index b7140e194..9783e60be 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -301,7 +301,7 @@ gboolean load_config(const gchar *filename, RaucConfig **config, GError **error) /* parse 'variant-file' key */ variant_data = key_file_consume_string(key_file, "system", "variant-file", &ierror); if (g_error_matches(ierror, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) { - variant_data = NULL; + g_clear_pointer(&variant_data, g_free); g_clear_error(&ierror); } else if (ierror) { g_propagate_error(error, ierror);