Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754850AbbKRHDu (ORCPT ); Wed, 18 Nov 2015 02:03:50 -0500 Received: from mga11.intel.com ([192.55.52.93]:6370 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751507AbbKRHDs (ORCPT ); Wed, 18 Nov 2015 02:03:48 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,311,1444719600"; d="scan'208";a="822851321" Date: Wed, 18 Nov 2015 09:03:39 +0200 From: Jarkko Sakkinen To: James Morris Cc: Peter Huewe , Marcel Selhorst , David Howells , Mimi Zohar , Jonathan Corbet , Jason Gunthorpe , James Morris , "Serge E. Hallyn" , "open list:KEYS-ENCRYPTED" , "open list:KEYS-ENCRYPTED" , "open list:DOCUMENTATION" , open list , "moderated list:TPM DEVICE DRIVER" Subject: Re: [PATCH 2/2] keys, trusted: seal with a policy Message-ID: <20151118070339.GA4942@intel.com> References: <1447777643-10777-1-git-send-email-jarkko.sakkinen@linux.intel.com> <1447777643-10777-3-git-send-email-jarkko.sakkinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1360 Lines: 46 On Wed, Nov 18, 2015 at 11:21:01AM +1100, James Morris wrote: > On Tue, 17 Nov 2015, Jarkko Sakkinen wrote: > > > } > > break; > > + case Opt_policydigest: > > + if (!tpm2 || > > + strlen(args[0].from) != (2 * opt->digest_len)) > > + return -EINVAL; > > + kfree(opt->policydigest); > > + opt->policydigest = kzalloc(opt->digest_len, > > + GFP_KERNEL); > > Is it correct to kfree opt->policydigest here before allocating it? I think so. The same option might be encountered multiple times. I don't have the check for nulliy because opt is kzalloc'd and checkpatch.pl complained that WARNING: kfree(NULL) is safe and this check is probably not required #20: FILE: security/keys/trusted.c:829: + if (opt->policydigest) + kfree(opt->policydigest); > > + if (!opt->policydigest) > > + return -ENOMEM; > > + res = hex2bin(opt->policydigest, args[0].from, > > + opt->digest_len); > > + if (res < 0) > > + return -EINVAL; > > Do you need to kfree it here on error? trusted_options_free() will kfree it. > -- > James Morris > /Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/