From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CD03C35242 for ; Fri, 24 Jan 2020 11:43:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2821020678 for ; Fri, 24 Jan 2020 11:43:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579866200; bh=4B+Bx8aWsAdssjEKaRL6rcWLwOShkfKSLgK9/93fxKE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=mEkOmjFmq+gNo9gt3dGXEMtCSEXKoEGUa3bpuXd44sAAHt+pTI0k1rN1wi1SYInzj rMYtRYH7pVDIH3Cxex8xD40Zcmcm+v7lAJ9D2Yez82Bt4K/pxj59QqysuruyHibo9f TMMD+PI1j3tNp7he6bWD5t+g61j57AoTA5HqEWaQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731123AbgAXLJK (ORCPT ); Fri, 24 Jan 2020 06:09:10 -0500 Received: from mail.kernel.org ([198.145.29.99]:44672 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729188AbgAXLJJ (ORCPT ); Fri, 24 Jan 2020 06:09:09 -0500 Received: from localhost (ip-213-127-102-57.ip.prioritytelecom.net [213.127.102.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8450A20663; Fri, 24 Jan 2020 11:09:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579864148; bh=4B+Bx8aWsAdssjEKaRL6rcWLwOShkfKSLgK9/93fxKE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BHJfOM6DEiGtHOje/ruZUa5qOmMTDZeArAzesE+xvFkU+mJ1KUM/iPFEQURv0L9UO c7Km/BfJhq3geIP1D8dvq9JN4tAxbbW7yo+5ek3GR9O8eGONRL9gIv7/umO2A3BDFO Zn6tgaBJAcrvPjfRoe7p27EcF2sjwELMirXtw1FY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nicholas Mc Guire , Corey Minyard , Haiyue Wang , Sasha Levin Subject: [PATCH 4.19 185/639] ipmi: kcs_bmc: handle devm_kasprintf() failure case Date: Fri, 24 Jan 2020 10:25:55 +0100 Message-Id: <20200124093110.312418669@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200124093047.008739095@linuxfoundation.org> References: <20200124093047.008739095@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Nicholas Mc Guire [ Upstream commit 42c7c6ef1e6fa5fc0425120f06f045190b1dda2d ] devm_kasprintf() may return NULL if internal allocation failed so this assignment is not safe. Moved the error exit path and added the !NULL which then allows the devres manager to take care of cleanup. Signed-off-by: Nicholas Mc Guire Fixes: cd2315d471f4 ("ipmi: kcs_bmc: don't change device name") Signed-off-by: Corey Minyard Reviewed-by: Haiyue Wang Signed-off-by: Sasha Levin --- drivers/char/ipmi/kcs_bmc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/char/ipmi/kcs_bmc.c b/drivers/char/ipmi/kcs_bmc.c index e6124bd548df2..ed4dc3b1843e3 100644 --- a/drivers/char/ipmi/kcs_bmc.c +++ b/drivers/char/ipmi/kcs_bmc.c @@ -440,12 +440,13 @@ struct kcs_bmc *kcs_bmc_alloc(struct device *dev, int sizeof_priv, u32 channel) kcs_bmc->data_in = devm_kmalloc(dev, KCS_MSG_BUFSIZ, GFP_KERNEL); kcs_bmc->data_out = devm_kmalloc(dev, KCS_MSG_BUFSIZ, GFP_KERNEL); kcs_bmc->kbuffer = devm_kmalloc(dev, KCS_MSG_BUFSIZ, GFP_KERNEL); - if (!kcs_bmc->data_in || !kcs_bmc->data_out || !kcs_bmc->kbuffer) - return NULL; kcs_bmc->miscdev.minor = MISC_DYNAMIC_MINOR; kcs_bmc->miscdev.name = devm_kasprintf(dev, GFP_KERNEL, "%s%u", DEVICE_NAME, channel); + if (!kcs_bmc->data_in || !kcs_bmc->data_out || !kcs_bmc->kbuffer || + !kcs_bmc->miscdev.name) + return NULL; kcs_bmc->miscdev.fops = &kcs_bmc_fops; return kcs_bmc; -- 2.20.1