From nobody Tue Nov 4 18:50:17 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; dkim=fail; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1530716701516390.89049637243886; Wed, 4 Jul 2018 08:05:01 -0700 (PDT) Received: from localhost ([::1]:47662 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fajL2-0005TW-Qk for importer@patchew.org; Wed, 04 Jul 2018 11:05:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48653) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fajIo-00049m-Ub for qemu-devel@nongnu.org; Wed, 04 Jul 2018 11:02:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fajIl-0000cl-St for qemu-devel@nongnu.org; Wed, 04 Jul 2018 11:02:42 -0400 Received: from mail-ua0-x242.google.com ([2607:f8b0:400c:c08::242]:43999) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fajIl-0000ch-O6; Wed, 04 Jul 2018 11:02:39 -0400 Received: by mail-ua0-x242.google.com with SMTP id x24-v6so3614398ual.10; Wed, 04 Jul 2018 08:02:39 -0700 (PDT) Received: from x1.local ([138.117.48.222]) by smtp.gmail.com with ESMTPSA id w7-v6sm240083vke.54.2018.07.04.08.02.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Jul 2018 08:02:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PGqIwwWiC+xR4lvF5MpyIeLzZ/FcpbwQS8N/UOeKjrk=; b=q7Norl408gezxJMzvWC5eLbj1qjBHPOge7IZ+8VDYZGbK9ih40X6DPSIr3tQYnyPfu ecSKxUnnr6QMH92tAIsO9lhK8OUdp0esbAPHTr+5PUSkBVISoHz0NDhHJVesXQ3QEuFV INCP9BeHHj1zaJe7G9iqRc5qC0H2ycQShM8kACLUi5fNwkvy11au/1imigew339yN9Ij Gh51aRCwKSWjnnqp6yjDnI2x9HOGPzrlNbm2eGBijeBFAygf/ta18v1jJVYfCPuo4GL2 2Um2WwC+PRO5UCLEeI1HMu+sRJyO8foL1X0B0M8D0U1mBQD5OJAe8wgmQMJYLGyvmcRZ MS6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=PGqIwwWiC+xR4lvF5MpyIeLzZ/FcpbwQS8N/UOeKjrk=; b=EKd1MmKMeflM3Ils7BbOnVRaWIaMnL/Jry4AMhEYog5GcwrymxubwJuANGYmwByU/+ WkyAslKGAYOGzN/AcfOEYKRyHBPxtzP1YTcOUY2lG1RzJQUV+79aLrM1PiqbGvj4R+WN 4/AVFnNFX/0kDyW83wMEWLrHKShG79vA2TW/5Ks14HC29qWxkdDRB4R8cw0/VAxYmQhN 9HaXvL3z/oHLTQQXIsxi5L6kERZZdoD6X7H6tURWPv/cRrhbvEUuGXohWBBJRP7Y+mNG oJwTqSNAklm2SGBoLZH93lm8YRk9/ytLWG2IopZlCnhf3tLsTV7unSj+5G7QIUaXRrpr g1zQ== X-Gm-Message-State: APt69E11HKi490Tl4j8hUVP/SajJieiD/Vku4IthfxamQWaSn3usmwC2 EGG+6jljCzfPiTV2k1nkpto= X-Google-Smtp-Source: AAOMgpfntryx8ARwghxqyXSpStMGac21DS7KEeJ5brR/LD6/wUAcpHFLeS1GFeSllC4sYW9eVN7joQ== X-Received: by 2002:ab0:16dc:: with SMTP id g28-v6mr1399592uaf.7.1530716558958; Wed, 04 Jul 2018 08:02:38 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Kevin Wolf , Max Reitz Date: Wed, 4 Jul 2018 12:02:29 -0300 Message-Id: <20180704150229.9948-1-f4bug@amsat.org> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400c:c08::242 Subject: [Qemu-devel] [PATCH] block/crypto: Simplify block_crypto_co_create_opts_luks to avoid a memory leak 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: qemu-block@nongnu.org, qemu-devel@nongnu.org, Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 After 1ec4f4160a1 Coverity reported: Variable cryptoopts going out of scope leaks the storage it points to. Fixes: Coverity CID 1393782 (Resource leak) Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- I think this check is superfluous but I respected the previous code: ret =3D block_crypto_co_create_generic(bs, size, create_opts, errp); if (ret > 0) { ret =3D 0; } block/crypto.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/block/crypto.c b/block/crypto.c index 994172a3de..d4d2c6c511 100644 --- a/block/crypto.c +++ b/block/crypto.c @@ -545,33 +545,36 @@ static int coroutine_fn block_crypto_co_create_opts_l= uks(const char *filename, create_opts =3D block_crypto_create_opts_init(cryptoopts, errp); if (!create_opts) { ret =3D -EINVAL; - goto fail; + goto cleanup_cryptoopts; } =20 /* Create protocol layer */ ret =3D bdrv_create_file(filename, opts, errp); if (ret < 0) { - return ret; + goto cleanup_create_opts; } =20 bs =3D bdrv_open(filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_RESIZE | BDRV_O_PROTOCOL, errp); if (!bs) { ret =3D -EINVAL; - goto fail; + goto cleanup_create_opts; } =20 /* Create format layer */ ret =3D block_crypto_co_create_generic(bs, size, create_opts, errp); - if (ret < 0) { - goto fail; + if (ret > 0) { + ret =3D 0; } =20 - ret =3D 0; -fail: bdrv_unref(bs); + +cleanup_create_opts: qapi_free_QCryptoBlockCreateOptions(create_opts); + +cleanup_cryptoopts: qobject_unref(cryptoopts); + return ret; } =20 --=20 2.18.0