Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp790851pxy; Fri, 30 Apr 2021 17:04:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBUXzPOTMs5v/S2YlVcTTdR7TvFFo3HubT1IMqmxXszWtO9oSoL4Ooa1efwmtAUbBBpJYD X-Received: by 2002:a05:6a00:162c:b029:22b:4491:d63a with SMTP id e12-20020a056a00162cb029022b4491d63amr7394472pfc.28.1619827448155; Fri, 30 Apr 2021 17:04:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619827448; cv=none; d=google.com; s=arc-20160816; b=hZitZDA6IR2g78xLkDmliSka9dblYbBXZ5bI5ui5YJS906Rbxrt6AYVJmC65OeYeZI nZbMeF8rOt/yIVIOP3bEHzY47EqLU4s+803o5lPZqtHz6RyslzhNiA7OUtCdHv0lxlw+ EkY4iWlKAPyA9JQ6BcrfNyyuhrVhLWgSCQJKWAHgHlfKpPJOrVAnQil6JfI7VyIWdEB2 9CFCj+VFHLmZXLd1+ig05InZVsFa3qjc0wfrOukazYs66+mapgREDKspxjoj7NS/xGU1 WPQok6E8yJo5scNbucRhewknlgDKyr7L0x72o7Hl34GuMcUz5wAs0DwbNxb+alRKJ7nx bQ7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=KBoeQcMdIXHbrr5qlPjaHe4/MPMag2oC2aXYy4bOLac=; b=xvkLF40LMZxteUfBDeia1pmYbyY374g1hX0bqwoKFdvlUibcjBPv9BZgxnKWS8dcOI X2/NyzNq6++Ln7oOv/aFXJJf1y56eiQuABuQBTfH0x44wnbdRdN2tNfJ1g+R6/aEtGIs eNHnzOBA0BdWUQkMBmYZ9ksYJxhwT24Q85Y5E2ER+/g1oi6vRPujW17JAy46yhgHMF0m efsAAJJ1dAWtFLrS+awqKPPeDYHW/irADqGe4shEcblYYQIG0q0NQOBbEYAyL/lHsEFU beh2xRtDbjk8/ou6tpA5hFV8nGcKEqo/c8EH9HXrEhfu4n2vddSgfCZIsx+RpU6iuBfV AgEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=fk2hsfuY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e15si5494696plh.350.2021.04.30.17.03.54; Fri, 30 Apr 2021 17:04:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=fk2hsfuY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233121AbhEAAD3 (ORCPT + 99 others); Fri, 30 Apr 2021 20:03:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233090AbhEAADZ (ORCPT ); Fri, 30 Apr 2021 20:03:25 -0400 Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73161C06138E for ; Fri, 30 Apr 2021 17:02:36 -0700 (PDT) Received: by mail-lf1-x12f.google.com with SMTP id z13so31633516lft.1 for ; Fri, 30 Apr 2021 17:02:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=KBoeQcMdIXHbrr5qlPjaHe4/MPMag2oC2aXYy4bOLac=; b=fk2hsfuYfGs/AoLeyHdX2NoIlNk1zaTNJSnZt4pQHFSjPY8+WK1Ez5pMSN7OadFDIK PQWtOfGaP0cSwvYOBouQBV07RiMzKNvCstfdLwcPGUP9NlCAGsoxZcfkbkj0YM1QHsT4 l/SLhvHV+mO9i7xpOl0NZJ2mHSkzDYhP9qiK2LIwM+mAC/ZUUDTGbralv7SUh0lgEb4E WAEPMUk4VLx1EgNA5K8LgO+MqjjiBGrM8ssKRV0BzLgPAyvJgJqAgqHHzcFY1c/hzG/B yo3KM2oDiGv0jAJYXGmIsm9fgrrruGghiwRacICmGk5Gu3SSd1POZcKwuO+NFW0fAQqX TiIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=KBoeQcMdIXHbrr5qlPjaHe4/MPMag2oC2aXYy4bOLac=; b=Xtm0MEJ2OsH2q65Zc0A9KoNdKJpIid8HUJFx/1eb2ByrTAZxVXbQidncM7TP6w+17B 77K+9uYDbr8Li9NKD5NYM3GbvPowRTx/Xlsv3DCn9qSVQ1VRC1a7QqGy6OcmJYTu8XSb 9n2yNpMypbnUZjpHUT79wt5dTSbYrbIMqWYYgSP/CH4zWujONYU9cEFy+ZkL0/MQkwLM v0BpMSmcqNx5Z2R8QvyJCFGZVQ0IO1kUfMut1mKZm2BuGcNTwoOlnGyFCO8AqU5ufqjo NENER3H5pd7mbx4ZtUzJgK5kmesxP8pBcpZeilAeCBY/HuTjUOyWCD4PfFkSn65Z8J6Q F1+Q== X-Gm-Message-State: AOAM533n+vyXdlEGT0E0OnsJPIdl9Zmd10cXNXMpAqMONltw86778X2w snINMw3/9NSIeB2VvvCiELp6f3Q7lBCj3JUy7di6YA== X-Received: by 2002:a05:6512:2190:: with SMTP id b16mr4995671lft.122.1619827354571; Fri, 30 Apr 2021 17:02:34 -0700 (PDT) MIME-Version: 1.0 References: <20210430113724.110746-1-colin.king@canonical.com> In-Reply-To: <20210430113724.110746-1-colin.king@canonical.com> From: Nick Desaulniers Date: Fri, 30 Apr 2021 17:02:23 -0700 Message-ID: Subject: Re: [PATCH] KEYS: trusted: Fix memory leak on object td To: Colin King Cc: James Bottomley , Jarkko Sakkinen , Mimi Zohar , David Howells , James Morris , "Serge E . Hallyn" , Nathan Chancellor , linux-integrity@vger.kernel.org, keyrings@vger.kernel.org, linux-security-module@vger.kernel.org, LKML , kernel-janitors@vger.kernel.org, clang-built-linux Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 30, 2021 at 4:37 AM Colin King wrote: > > From: Colin Ian King > > Two error return paths are neglecting to free allocated object td, > causing a memory leak. Fix this by returning via the error return > path that securely kfree's td. > > Fixes clang scan-build warning: > security/keys/trusted-keys/trusted_tpm1.c:496:10: warning: Potential > memory leak [unix.Malloc] > > Fixes: 5df16caada3f ("KEYS: trusted: Fix incorrect handling of tpm_get_random()") > Signed-off-by: Colin Ian King Thanks for the patch! Reviewed-by: Nick Desaulniers > --- > security/keys/trusted-keys/trusted_tpm1.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/security/keys/trusted-keys/trusted_tpm1.c b/security/keys/trusted-keys/trusted_tpm1.c > index 469394550801..aa108bea6739 100644 > --- a/security/keys/trusted-keys/trusted_tpm1.c > +++ b/security/keys/trusted-keys/trusted_tpm1.c > @@ -493,10 +493,12 @@ static int tpm_seal(struct tpm_buf *tb, uint16_t keytype, > > ret = tpm_get_random(chip, td->nonceodd, TPM_NONCE_SIZE); > if (ret < 0) > - return ret; > + goto out; > > - if (ret != TPM_NONCE_SIZE) > - return -EIO; > + if (ret != TPM_NONCE_SIZE) { > + ret = -EIO; > + goto out; > + } > > ordinal = htonl(TPM_ORD_SEAL); > datsize = htonl(datalen); > -- > 2.30.2 > -- Thanks, ~Nick Desaulniers