[sheepdog] [PULL 4/4] sheepdog: Fix sd_co_create_opts() memory leaks
Jeff Cody
jcody at redhat.com
Tue May 8 17:19:24 CEST 2018
From: Kevin Wolf <kwolf at redhat.com>
Both the option string for the 'redundancy' option and the
SheepdogRedundancy object that is created accordingly could be leaked in
error paths. This fixes the memory leaks.
Reported by Coverity (CID 1390614 and 1390641).
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
Message-id: 20180503153509.22223-1-kwolf at redhat.com
Reviewed-by: Jeff Cody <jcody at redhat.com>
Signed-off-by: Jeff Cody <jcody at redhat.com>
---
block/sheepdog.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 07529f4b1b..fed2a04797 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -1987,6 +1987,7 @@ static SheepdogRedundancy *parse_redundancy_str(const char *opt)
} else {
ret = qemu_strtol(n2, NULL, 10, &parity);
if (ret < 0) {
+ g_free(redundancy);
return NULL;
}
@@ -2183,7 +2184,7 @@ static int coroutine_fn sd_co_create_opts(const char *filename, QemuOpts *opts,
QDict *qdict, *location_qdict;
QObject *crumpled;
Visitor *v;
- const char *redundancy;
+ char *redundancy;
Error *local_err = NULL;
int ret;
@@ -2253,6 +2254,7 @@ static int coroutine_fn sd_co_create_opts(const char *filename, QemuOpts *opts,
fail:
qapi_free_BlockdevCreateOptions(create_options);
qobject_unref(qdict);
+ g_free(redundancy);
return ret;
}
--
2.13.6
More information about the sheepdog
mailing list