Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp1474209pxv; Fri, 16 Jul 2021 10:06:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJycrc9pcuw0lIkkxO3rVRTg7WiXMEcbeKPcjr5Ht6k2SKgYFTbV47rjO7ekYZvDcucciZGc X-Received: by 2002:a17:907:2d8a:: with SMTP id gt10mr12971208ejc.10.1626455199372; Fri, 16 Jul 2021 10:06:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626455199; cv=none; d=google.com; s=arc-20160816; b=MKNIFSJTQQmhjRI8ch4aYOXUksw9yRawaF1uiHIEKsBodeshChK4BblU7j1Jtjwf09 FUUjlzKa35IMQei8qGMRKVy/wg/5m6iQxX8MRWCRCNNJyA4K9XbqyszQdX9AqUvolDAZ 95FJUd1hLoGeHbZoEw7JDzFy6KKUoxsUSiJ3SbBO1fwUBlAY6F9u/vuLauEXdlg6aEXb 3b/Md+qa6u1PbROqIcy47JB0P1cfxqETQlmkYaB9KoIusSOvibrSbe0IBMMseMlwrcrv CFZk27YAew1oLu3/ZAZEWVB5L63qh80A/zUtKXlYFgQo2f1DkVIUBHI6QlAlfqHN5Res ivhA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=qwLQpmS1VkEn5shnsi/9eEHubXNgTzoR6XIYEs5b1w8=; b=MnvXiPRa5PyWLy03THTpVnzN2SM2J9DRHveCxWD55uJHGZ9eap4C8P3D6Kc6jHovlA eHFVt8ip6EooSL2EsiPyzQZymytLcy7k/FUWyUgYiPGhojrgLUg/uJLD7BP8ZP0uvAxO 7HV0ow3cFkD7cSfrfzDyaN5n3YSgj/L85w+JSd1fX4BV/WkUMQvya52KdNkFiCxDsvDe glJFhymWvuJyVedQapMkaFH83bGaYPBy4veLrERbMgEsokCPTQTSg4K08Gz6cFfabtWi Z3Z9qz/mdezQ+ENKVWmRqHrZDWm9GinLWQg/tIP1MGgsPZ0DRnGo0i88Ac0+ZzVYdLOw wCBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=K+y98mCj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmx.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u25si11593576ejr.597.2021.07.16.10.06.14; Fri, 16 Jul 2021 10:06:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=K+y98mCj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmx.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230253AbhGPRHj (ORCPT + 99 others); Fri, 16 Jul 2021 13:07:39 -0400 Received: from mout.gmx.net ([212.227.15.19]:44465 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230189AbhGPRHh (ORCPT ); Fri, 16 Jul 2021 13:07:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1626455042; bh=LrJqnGLr+yAUvufNYQHvar5369au8NY8/oDzo4u3xto=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=K+y98mCjTJ8KAgzUqyhQ5AQ+jQhVg0sjlNVDSVP92/+eYGfksmUWgRTY9c5a5MdVJ S+qUSEp9vxQ7HsTnmi9+6tiYbuTMbk0ZnnekPzKPt7XZwI1Du0stZ4gktmfAuBqAgJ W5plVohP2+fl5fI1sSTxuF0HbChnTTL2i+eLnb7Q= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([83.52.228.41]) by mail.gmx.net (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MybGh-1lCAcJ2iDN-00yypb; Fri, 16 Jul 2021 19:04:02 +0200 From: Len Baker To: Vineet Gupta Cc: Len Baker , "dean.yang_cp" , "Gustavo A. R. Silva" , linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] ARC: unwind: Use struct_size helper instead of open-coded arithmetic Date: Fri, 16 Jul 2021 19:03:44 +0200 Message-Id: <20210716170344.9150-1-len.baker@gmx.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:5SAJCQgoPecLOvlAQgDwaVANDA8DxUuLHfyrrkaNw0SbTdjcubb +3mVWWXnnrtaFn7YSpUqf7imH3OMpztog3bq8Qy2lKTgdiSIV36wx9kxNZzrF/WEpZCwRem eVgdflOQ30ghuVax+8LcnoW3M8I4JnPvkIEJO0p8Z3mI2/tM0cKFcrNmBiC7F2zbFOmIPDW q6lobTxcgJROUUt2IFdPw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:SC8PvHkTL40=:C/LEBcfPB3naggULrZzMY6 tB4o6Aar3L6Ue9SkGXhHHsLoiY4vCT3+sGmeEhldXnTcpBhlG5EmwQWitHimb8lHk7EMuwTJj EftnhQ4gxUY9ztuLrr9N9leasXYQkvwmZs1sn5l73j8OFaa126xTansgurv4IxaKa0ujzyoae 8nVtg8j8fmOCrs9dRXsAmUumDZOhucRRw04m3rFhJm4B4xm5xWsn2VB5LeFzN6OHOHlNlzlNV nFLKQgOGLBO+S5SKqr0t3rtP3oKfGwjwd1+lflesx5HY1yikHTWriibs2jU2/FJXK7j/R31xy 5vB4+jZ5Mqig5Ah9Mfz10yP0updphb3KvYk3Ydhs3Y8/6ASvAUxsb/vt1dU9h7eHknFAzNmVO oMvYvCQd2kQmUp+5eJnRuf2aHnQ+CtBQP8TtvEB7cyjaa6cWYxwsnWYpKThTglVGWs+lpQMy7 ATTa6mEY6+p/+2XSzTWW1S7m44RKTb/BOmiHh5VeKOV6XOya2UIkb5NC2roZwMs0NVx/tFHfV gOd46lp7X/cfgxd2FBn2tMiHlHLzESp9z0AoYhuWKwOIDxoRmRdDmHc5kN7kmGtULfWiJMpws cskp4iPIiHCEK8T/x8nhhVm46ev5EnZxgWzcg0w1illfnjTAJFoGqUtq+DyLdw2Q8pIFlWNmz Vu9mX9ncFOE55wEcomOy2XlPqP+xQ4XNz6bjUePMRJJYOgljTmIddFJEGtT8nrtqx+46oF0tp 2gIFXvkhWryCTUDCOv3F4XO6MiE9R98+G6IjaAeej0UYwaSw9bb+2rLfMGXn5fCBqkactuTXC eIeomvR/QeH2S1TN6nNUNuEoU3AWNDFCsIku59GePnb9Q6LsuLHL8StMfKbw4lPYZ5PaTq1D6 OiJl0tgfm9l4aUq9MI7b6r9KHZgiQHsGtO5gwrHn6/4tFFcf87H7YLzTy3ReOIBYUo0SuXp+J y0bGSGFG1fXFhDfBjWI+jH+RVODIg5DnRiBjglBzNNIcWoSrV8eNzKgwXUrgvfr421eFhSTp4 NEazAMD1rli2aYGltK66FBjcu1jKjFNz2IB2AC9Sb5AbGzssJ54HIgUpC7V1M1WmVPYTSXIT3 po0P4lz9oTG4v8NNnmgdY0G53IlweTgfS4w Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dynamic size calculations (especially multiplication) should not be performed in memory allocator 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. To avoid this scenario, use the struct_size helper. Signed-off-by: Len Baker =2D-- arch/arc/kernel/unwind.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c index 47bab67f8649..af18052b86a7 100644 =2D-- a/arch/arc/kernel/unwind.c +++ b/arch/arc/kernel/unwind.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -312,9 +313,7 @@ static void init_unwind_hdr(struct unwind_table *table= , if (tableSize || !n) goto ret_err; - hdrSize =3D 4 + sizeof(unsigned long) + sizeof(unsigned int) - + 2 * n * sizeof(unsigned long); - + hdrSize =3D struct_size(header, table, n); header =3D alloc(hdrSize); if (!header) goto ret_err; =2D- 2.25.1