Blame SOURCES/kvm-sheepdog-Fix-sd_co_create_opts-memory-leaks.patch

383d26
From d9da0aedd0dc6aeee5751855eda3560f1757910c Mon Sep 17 00:00:00 2001
383d26
From: Kevin Wolf <kwolf@redhat.com>
383d26
Date: Tue, 26 Jun 2018 09:47:44 +0200
383d26
Subject: [PATCH 15/89] sheepdog: Fix sd_co_create_opts() memory leaks
383d26
383d26
RH-Author: Kevin Wolf <kwolf@redhat.com>
383d26
Message-id: <20180626094856.6924-2-kwolf@redhat.com>
383d26
Patchwork-id: 81074
383d26
O-Subject: [RHV-7.6 qemu-kvm-rhev PATCH v2 01/73] sheepdog: Fix sd_co_create_opts() memory leaks
383d26
Bugzilla: 1513543
383d26
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
383d26
RH-Acked-by: Max Reitz <mreitz@redhat.com>
383d26
RH-Acked-by: Fam Zheng <famz@redhat.com>
383d26
383d26
Both the option string for the 'redundancy' option and the
383d26
SheepdogRedundancy object that is created accordingly could be leaked in
383d26
error paths. This fixes the memory leaks.
383d26
383d26
Reported by Coverity (CID 1390614 and 1390641).
383d26
383d26
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
383d26
Message-id: 20180503153509.22223-1-kwolf@redhat.com
383d26
Reviewed-by: Jeff Cody <jcody@redhat.com>
383d26
Signed-off-by: Jeff Cody <jcody@redhat.com>
383d26
(cherry picked from commit a2cb9239b7610ffb00f9ced5cd7640d40b0e1ccf)
383d26
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
383d26
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
383d26
---
383d26
 block/sheepdog.c | 4 +++-
383d26
 1 file changed, 3 insertions(+), 1 deletion(-)
383d26
383d26
diff --git a/block/sheepdog.c b/block/sheepdog.c
383d26
index d1c9bf5..933880c 100644
383d26
--- a/block/sheepdog.c
383d26
+++ b/block/sheepdog.c
383d26
@@ -1977,6 +1977,7 @@ static SheepdogRedundancy *parse_redundancy_str(const char *opt)
383d26
     } else {
383d26
         ret = qemu_strtol(n2, NULL, 10, &parity);
383d26
         if (ret < 0) {
383d26
+            g_free(redundancy);
383d26
             return NULL;
383d26
         }
383d26
 
383d26
@@ -2172,7 +2173,7 @@ static int coroutine_fn sd_co_create_opts(const char *filename, QemuOpts *opts,
383d26
     BlockdevCreateOptions *create_options = NULL;
383d26
     QDict *qdict, *location_qdict;
383d26
     Visitor *v;
383d26
-    const char *redundancy;
383d26
+    char *redundancy;
383d26
     Error *local_err = NULL;
383d26
     int ret;
383d26
 
383d26
@@ -2240,6 +2241,7 @@ static int coroutine_fn sd_co_create_opts(const char *filename, QemuOpts *opts,
383d26
 fail:
383d26
     qapi_free_BlockdevCreateOptions(create_options);
383d26
     qobject_unref(qdict);
383d26
+    g_free(redundancy);
383d26
     return ret;
383d26
 }
383d26
 
383d26
-- 
383d26
1.8.3.1
383d26