Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp664977iog; Mon, 13 Jun 2022 10:09:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTdu/odPiLsMgZS7hbaAjwrFJVgbeUBRmyS7+qpleoUfgoCSJ8bxVVaDE8U9ZUx10AK5dC X-Received: by 2002:a05:6a00:1907:b0:4f7:945:14cf with SMTP id y7-20020a056a00190700b004f7094514cfmr302391pfi.47.1655140175918; Mon, 13 Jun 2022 10:09:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655140175; cv=none; d=google.com; s=arc-20160816; b=YoppMIXfJWMX4l+SeAKNqfW07V8ZU37x538mly9LG2hi1Wpbh0Q8EHwSHOzdqqhikE Wuc3D3720Zt38F7uqKFMBqK+FdlChzQzfN2AM1/Tzm1SJ9MJyewlY2upNVorjunnbwgr MHgtysKqED5Owd4/cXmd4hmDyTmeyFlZ0l3PNgbwxM2kEV4Sx7Su91YOyKKd8DZatPTP YYmrSHeUgRZcK2QboJIU4FTCfOuS9XMdDjcaYbjDlsucJs+lGC4LoCo0BZxfmnOrP3G8 yb6vmz0ErnPdibJjKQCHqWdZH6ZRtSr06iV/0KyfcX/37DK1HUw+eUhqrSEeE3px/xhs KYWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EmLguZRfQ6P4LGZ5Mpgd0N8Loe2cuDli1xoKdNfgN58=; b=tzzF4uJ1ivhkQQ83Cblf841n5Yct6OnCIsDBgC0mOU2r7PEmH0rqXsR/QY/zEiFHhX N5jba9eIzJOFtOHxSWF5+X86MEOKnvv7H7oV2UdtsV3Hb8fNB2NggN9ZQGVtu4y7iMsv uJvV5ampbPms2Ul6G5QYac4yYYFKi5MXp8tjilkrkvK/eMMuU4IvyC1C0Gsped9xWI9y MSWd2pqKXjfo8+pLFHtk7BbEXT6U0FK3CND11mfyQLf0EO4ZroEoo7QTYgq6EXPY7HFd z4HkMSGJCQs/fWYTSc93WKbgQNKs6YDkvaA8Ws6536RPEFWJjTqw7Cm9MiWR4IW9sZrY W+qQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0pcMr7UM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s16-20020a63e810000000b003fc6682b1ebsi9462902pgh.223.2022.06.13.10.09.19; Mon, 13 Jun 2022 10:09:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0pcMr7UM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357715AbiFMNDp (ORCPT + 99 others); Mon, 13 Jun 2022 09:03:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354986AbiFMMzM (ORCPT ); Mon, 13 Jun 2022 08:55:12 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 374329FFF; Mon, 13 Jun 2022 04:15:26 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id E61D1B80D31; Mon, 13 Jun 2022 11:15:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A105C34114; Mon, 13 Jun 2022 11:15:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1655118923; bh=aHzfA6oGqRNurQkGlWsaEsU5EAYtgpsc2v2fGQ8sZv4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0pcMr7UMPFDMX7eTGckTCpMolWrRlNg3/PhdyzlEBIBkxlDRAGMc9AjEut2oYg9jg s/Fmwk4LNqIb6eG3gMq/tNWH8QFTZKIMmZl3JJbnGBI03PPeEHu9DNYPwU1/wBf9br 326BrDYp1G3RM41L1PdEE/i6pAP2wSFuzY4SblW8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Jiasheng Jiang , Sasha Levin Subject: [PATCH 5.15 049/247] staging: r8188eu: add check for kzalloc Date: Mon, 13 Jun 2022 12:09:11 +0200 Message-Id: <20220613094924.439178209@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613094922.843438024@linuxfoundation.org> References: <20220613094922.843438024@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jiasheng Jiang [ Upstream commit f94b47c6bde624d6c07f43054087607c52054a95 ] As kzalloc() may return null pointer, it should be better to check the return value and return error if fails in order to avoid dereference of null pointer. Moreover, the return value of rtw_alloc_hwxmits() should also be dealt with. Fixes: 15865124feed ("staging: r8188eu: introduce new core dir for RTL8188eu driver") Reviewed-by: Dan Carpenter Signed-off-by: Jiasheng Jiang Link: https://lore.kernel.org/r/20220518075957.514603-1-jiasheng@iscas.ac.cn Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/staging/r8188eu/core/rtw_xmit.c | 13 +++++++++++-- drivers/staging/r8188eu/include/rtw_xmit.h | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_xmit.c b/drivers/staging/r8188eu/core/rtw_xmit.c index 46fe62c7c32c..0ee4f88a60d4 100644 --- a/drivers/staging/r8188eu/core/rtw_xmit.c +++ b/drivers/staging/r8188eu/core/rtw_xmit.c @@ -179,7 +179,12 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitpriv->free_xmit_extbuf_cnt = num_xmit_extbuf; - rtw_alloc_hwxmits(padapter); + res = rtw_alloc_hwxmits(padapter); + if (res) { + res = _FAIL; + goto exit; + } + rtw_init_hwxmits(pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry); for (i = 0; i < 4; i++) @@ -1516,7 +1521,7 @@ s32 rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmitframe) return res; } -void rtw_alloc_hwxmits(struct adapter *padapter) +int rtw_alloc_hwxmits(struct adapter *padapter) { struct hw_xmit *hwxmits; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; @@ -1524,6 +1529,8 @@ void rtw_alloc_hwxmits(struct adapter *padapter) pxmitpriv->hwxmit_entry = HWXMIT_ENTRY; pxmitpriv->hwxmits = kzalloc(sizeof(struct hw_xmit) * pxmitpriv->hwxmit_entry, GFP_KERNEL); + if (!pxmitpriv->hwxmits) + return -ENOMEM; hwxmits = pxmitpriv->hwxmits; @@ -1540,6 +1547,8 @@ void rtw_alloc_hwxmits(struct adapter *padapter) hwxmits[3] .sta_queue = &pxmitpriv->bk_pending; } else { } + + return 0; } void rtw_free_hwxmits(struct adapter *padapter) diff --git a/drivers/staging/r8188eu/include/rtw_xmit.h b/drivers/staging/r8188eu/include/rtw_xmit.h index 5f6e2402e5c4..762a2fa3bd17 100644 --- a/drivers/staging/r8188eu/include/rtw_xmit.h +++ b/drivers/staging/r8188eu/include/rtw_xmit.h @@ -345,7 +345,7 @@ s32 rtw_txframes_sta_ac_pending(struct adapter *padapter, void rtw_init_hwxmits(struct hw_xmit *phwxmit, int entry); s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter); void _rtw_free_xmit_priv(struct xmit_priv *pxmitpriv); -void rtw_alloc_hwxmits(struct adapter *padapter); +int rtw_alloc_hwxmits(struct adapter *padapter); void rtw_free_hwxmits(struct adapter *padapter); s32 rtw_xmit(struct adapter *padapter, struct sk_buff **pkt); -- 2.35.1