From patchwork Sat Sep 11 10:28:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Len Baker X-Patchwork-Id: 12486313 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=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 4C73AC433F5 for ; Sat, 11 Sep 2021 10:34:12 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F2960611BF for ; Sat, 11 Sep 2021 10:34:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org F2960611BF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmx.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BE5156E99F; Sat, 11 Sep 2021 10:34:10 +0000 (UTC) X-Greylist: delayed 318 seconds by postgrey-1.36 at gabe; Sat, 11 Sep 2021 10:34:08 UTC Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 574A86E99F for ; Sat, 11 Sep 2021 10:34:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1631356446; bh=kW2/XFCgLeQJ8pAdiZHbaLLR//IPNQFMApFkxDIZUaU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=SMfszyS7fpQAl8EViFkiAHV2P3+RZts8TsGxMNiltBl1Ors63kPh2wJ72UQvfZhoj b6/GQ9rKTi/b06SHwwByKidP0G33cF1TZcFxmTMP92PXcNPMgTJlNXwhXD1Xf2v3rq Pr+5owY5U2K5dZzj5vzvzCKPdEVI2bqR9lNbEWMA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([79.150.72.99]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1M1Hdq-1mNMcU11P0-002rAx; Sat, 11 Sep 2021 12:28:40 +0200 From: Len Baker To: "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Dexuan Cui , "David S. Miller" , Jakub Kicinski , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= , Kees Cook Cc: Len Baker , Colin Ian King , linux-hardening@vger.kernel.org, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org Subject: [PATCH] net: mana: Prefer struct_size over open coded arithmetic Date: Sat, 11 Sep 2021 12:28:18 +0200 Message-Id: <20210911102818.3804-1-len.baker@gmx.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:dfVEWPwUfXk7WIDTAbTGVLjgPLhUDRc24p6xewK3GBqzbU6DrcU ykjnc9cNedQlmlg2HsTJDh+pa11ahYb6Y+2sPn51SUs8CNYG+ggGvmOsFmGmQQ77r9/a55S 635XjyqZv/kz30sj90ZoUxbIdPhLVdwaip4p8XoRizgjtM4u7JfPsXt8t4JOwK4SDCTUtrm 5Pzh+wyuAZy8g7EzyPK9w== X-UI-Out-Filterresults: notjunk:1;V03:K0:arqUsRxHs9g=:2+DWnwfOpuJVzk5UIg7elK mwIAXKhHRa3XipIVYCykZc0lo7+v+ELhwOP7LfDheWrotJTI9ABLTURqgKAGwe555stYiRynA vkOYshcEwe6W5BAA1xxNoCnHGwlP+k4ECJ9Q6qAlByY97W0NnzZfj3skrPrzaQu1At4cHoqXS ypN9q/KxtXgbnQGMyD3v82183TDH2kzNVn41IItcjDjowX7ljVbskYM9aP0XJoBJ4GA2y/1M6 +lEQX1/FMCHtL6WN31OfAlXA9i8OVaAJfxrhG9xIs7A1a1mBkmAuDvX2x5YIuBdC/NIjkZslA xkJawNI2qM05rUpYtOt03L/Tq2TWDRKEp9znc+yjEvXTSX/V/Q0J9aAHaLr7ijZOMYw+YVuk5 wf43C7d1wyhG1PsK5QyWDn4QWhCYWkMOQiCK4V2G1yZ4W0zAtn3rXjw7AT0FgxJ4FoXTHq81U xywLD74BoyPkMSd4u0YMj0+ta5KbHILHxwz1dzfhpnP+70d5M/6/mx8FtnQyGKFHuOCAd6l6n R+uuTt+mgbOe60CnJ97z0dvuNkq98Vwk+w9Sp1oLVykW6L7XUrX1ZH5ccnJudAWnW3aTL24pr 5X2osVQMjKdiOkUG4EfXuRL5Tdc/v9AfgKtSgyx+XH09mMIjL6kumBlePoPCLusaShxzvYtfB /znhQ5FxPVs96NDij0OWD6ILj3Qs7NRhygwBueSb445EJrPqVTN+acR/vok4AgTjVas1ZHKkh TzUvef1hsZrr+UpDwsEWdX4pOtYQNklAmW/9k16YRo5l6ZXqN/5VdeYh336hBn6RWGPyGfiHW BjTVN1iH6AzT7GZYv4A/xp9M6Up96BcLJHENp/0HqOsjfXSqmH+dbXKYKdCod18be8FTP8NVz nke5yUISIee/TtArDowIQ6WLKm6RC18mk3vX8EDUZHwG9W0BmhX+FI2/nciB8r4lpCOmkkDOE QJNDwmAQ72qA3jL0+itOziJQtkr7puC+/G/4b9vKRBTTu2VSeYLuTB+EvJmb0yl11dT143isV Ny0OQO4Jlvpp+JAEfLiKDhl31F1y06SAjOyhxV4N8+b+RrdZKuarxIODFVpPsvxCPIX/1Kvwm aDw4LQQhbcqiwA= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" As noted in the "Deprecated Interfaces, Language Features, Attributes, and Conventions" documentation [1], size calculations (especially multiplication) should not be performed in memory allocator (or similar) function arguments due to the risk of them overflowing. This could lead to values wrapping around and a smaller allocation being made than the caller was expecting. Using those allocations could lead to linear overflows of heap memory and other misbehaviors. So, use the struct_size() helper to do the arithmetic instead of the argument "size + count * size" in the kzalloc() function. [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments Signed-off-by: Len Baker Reviewed-by: Haiyang Zhang --- drivers/net/ethernet/microsoft/mana/hw_channel.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) -- 2.25.1 diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c index 1a923fd99990..0efdc6c3c32a 100644 --- a/drivers/net/ethernet/microsoft/mana/hw_channel.c +++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c @@ -398,9 +398,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth, int err; u16 i; - dma_buf = kzalloc(sizeof(*dma_buf) + - q_depth * sizeof(struct hwc_work_request), - GFP_KERNEL); + dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL); if (!dma_buf) return -ENOMEM;