From nobody Thu Dec 18 13:29:16 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1525793507577398.40500285215285; Tue, 8 May 2018 08:31:47 -0700 (PDT) Received: from localhost ([::1]:51919 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fG4ag-0004gl-QL for importer@patchew.org; Tue, 08 May 2018 11:31:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33340) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fG4PJ-0002A5-4a for qemu-devel@nongnu.org; Tue, 08 May 2018 11:20:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fG4PI-0004Ze-BP for qemu-devel@nongnu.org; Tue, 08 May 2018 11:20:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37024) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fG4PG-0004XF-6B; Tue, 08 May 2018 11:19:58 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6E4D4319D3DC; Tue, 8 May 2018 15:19:57 +0000 (UTC) Received: from localhost (ovpn-117-144.phx2.redhat.com [10.3.117.144]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 388077656F; Tue, 8 May 2018 15:19:57 +0000 (UTC) From: Jeff Cody To: qemu-block@nongnu.org Date: Tue, 8 May 2018 11:19:24 -0400 Message-Id: <20180508151924.18741-5-jcody@redhat.com> In-Reply-To: <20180508151924.18741-1-jcody@redhat.com> References: <20180508151924.18741-1-jcody@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Tue, 08 May 2018 15:19:57 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 4/4] sheepdog: Fix sd_co_create_opts() memory leaks X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , peter.maydell@linaro.org, sheepdog@lists.wpkg.org, Hitoshi Mitake , Jeff Cody , qemu-devel@nongnu.org, Max Reitz , Liu Yuan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Kevin Wolf 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 Message-id: 20180503153509.22223-1-kwolf@redhat.com Reviewed-by: Jeff Cody Signed-off-by: Jeff Cody --- 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 =3D qemu_strtol(n2, NULL, 10, &parity); if (ret < 0) { + g_free(redundancy); return NULL; } =20 @@ -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 =3D NULL; int ret; =20 @@ -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; } =20 --=20 2.13.6