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

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