From 45a51f7487f858d4f5ea516082b2f9410880a606 Mon Sep 17 00:00:00 2001 From: Enrico Joerns Date: Tue, 1 Mar 2022 21:50:20 +0100 Subject: [PATCH] src/manifest: fix manifest leaking on error in parse_manifest() Fixes coverity issue: | CID 1445506 (#1 of 1): Resource leak (RESOURCE_LEAK) | 7. leaked_storage: Variable raucm going out of scope leaks the storage it points to Signed-off-by: Enrico Joerns --- src/manifest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/manifest.c b/src/manifest.c index 2cc5d265a..2b50c5651 100644 --- a/src/manifest.c +++ b/src/manifest.c @@ -104,7 +104,7 @@ static gboolean parse_image(GKeyFile *key_file, const gchar *group, RaucImage ** static gboolean parse_manifest(GKeyFile *key_file, RaucManifest **manifest, GError **error) { GError *ierror = NULL; - RaucManifest *raucm = g_new0(RaucManifest, 1); + g_autoptr(RaucManifest) raucm = NULL; gboolean res = FALSE; g_autofree gchar *tmp = NULL; g_auto(GStrv) groups = NULL; @@ -114,6 +114,8 @@ static gboolean parse_manifest(GKeyFile *key_file, RaucManifest **manifest, GErr g_assert_null(*manifest); + raucm = g_new0(RaucManifest, 1); + /* parse [update] section */ raucm->update_compatible = key_file_consume_string(key_file, "update", "compatible", &ierror); if (!raucm->update_compatible) {