From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752206AbdECPtg (ORCPT ); Wed, 3 May 2017 11:49:36 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:43019 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751601AbdECPt3 (ORCPT ); Wed, 3 May 2017 11:49:29 -0400 From: Colin King To: Greg Kroah-Hartman , Wei-Ning Huang , Thierry Escande , Wei Yongjun Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] firmware: Google VPD: fix error handling on allocation failures Date: Wed, 3 May 2017 16:49:24 +0100 Message-Id: <20170503154924.1659-1-colin.king@canonical.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King Fix two allocation failure checks. Firstly, ensure info is checked for a failed allocation; this fixes a potential null pointer dereference issue on info->key. Secondly, free info is info->key fails to allocate to fix a memory leak. Detected by CoverityScan, CID#1430064 ("Resource Leak") Signed-off-by: Colin Ian King --- drivers/firmware/google/vpd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/google/vpd.c b/drivers/firmware/google/vpd.c index 3ce813110d5e..2eb15b1dabcc 100644 --- a/drivers/firmware/google/vpd.c +++ b/drivers/firmware/google/vpd.c @@ -116,9 +116,13 @@ static int vpd_section_attrib_add(const u8 *key, s32 key_len, return VPD_OK; info = kzalloc(sizeof(*info), GFP_KERNEL); + if (!info) + return -ENOMEM; info->key = kzalloc(key_len + 1, GFP_KERNEL); - if (!info->key) + if (!info->key) { + kfree(info); return -ENOMEM; + } memcpy(info->key, key, key_len); -- 2.11.0