Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp754626pxj; Thu, 13 May 2021 16:31:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxqbLl2uMQ0x1k+lFS8qG22zh4qOwcfWu2P3asZEQMRuj1nihREjBifN9lnPR9bXm+7O+L6 X-Received: by 2002:a02:8588:: with SMTP id d8mr39921904jai.129.1620948677040; Thu, 13 May 2021 16:31:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620948677; cv=none; d=google.com; s=arc-20160816; b=qhRr5niZ5ckRVTLCSZJ+stUJ6wPJXt9wFpUxDakQTrHELM8bkROFk0AVQxCRGZDbnm 4XIo7JynU3aA0QZA+ra8GhwlqtaAhGa4ZOC8UNOCBmxxExMTEg7hnMCf6Wkyp+WSlnas olC23b7qlD9GeOpEBRDetHHCavJZmKgatzb1GgUWZ7aIzKxC8ScgLj3QL3nsb/+sL5pz n2owQ+AV/K+sGb+/uM5uLx92ajlLCWhKRjT+5Q7suqx4yUoLD5asv/qtFoRxClqEuxib S0uUt7cN/gcEye0muVWjs4J3H8dJBXidMHOH7MOcGwVaddYmIMwDYGBQPhHATuj6e5Zt PVLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature; bh=Xf1lRi8PV18T+lGZ4bbiILkD/gb4Kr8ytHeJbEUKKKw=; b=eF6hgD+rxqP155hIjd/YvHr242LJstW3VDyHTQtzwM/V45LDF6jcAr2G2XQ+MsxtBp abK+nkcHmMYV1iRSB3S7os54HociGCX9POiYO3braD6dZCI1zPYyAVqRvOJlccGwY2D+ L8kLkySA6gnxHPc2Hl90tnLMLzoQzxxkONeWkdce2IbDLPne2BFObjhdHMaMp3yNiem7 IgmdQwTSBUHaV3IskWOW8bVNH6mj+T3PJ/vhKf/tpWece/hBHqEdU8lypOeD5At90/x0 sM+jzNjHRuBMBG0NU3uMitrC3YCtHZDtnSFC1M0vqMO2EpXw1WTNhEj4J0Xf/iEHW0Bi iY9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KsljFerX; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 5si4901034ilx.117.2021.05.13.16.31.04; Thu, 13 May 2021 16:31:17 -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=@kernel.org header.s=k20201202 header.b=KsljFerX; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230334AbhEMTeb (ORCPT + 99 others); Thu, 13 May 2021 15:34:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:60216 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229854AbhEMTe3 (ORCPT ); Thu, 13 May 2021 15:34:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4E0F161408; Thu, 13 May 2021 19:33:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620934396; bh=HmOeK1hNNFR134NlruI1h+LOfJJnvZEyFJJQ8JsA/Xo=; h=Date:From:To:Cc:Subject:From; b=KsljFerXmta0Fh9boGxGKLWZmdE4+ETQ7UZDgjS4wEKc0pZMsC97GZp3CZ/Hs1ORK MfGk3j5ZPmblGxHu5IIbuCHc6+/SoXVNXHCTY4TRFp3kIVXBYNLqs5DjmojZ1ZNBf2 QIn+5B0Rc8ZxIA3/s05vwy/xtBnYzkK76rcOaW4fRxaSJrppTLQmtfE0h6MUZiedYH 0gJrsQkuTUnbWfdmSvE9ZslgehYQqmZKRwpLn+UVFmPMwHICaDPOrrs6gAzjzHPmii v2iVD2mr6orGX3DLw7q38Vtc/j3NvMqOIrp5gyHBQR/URIdtlD3SHHnMfvCr5Nn/B7 t9ac13qzUntjg== Date: Thu, 13 May 2021 14:33:53 -0500 From: "Gustavo A. R. Silva" To: Felipe Balbi , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, "Gustavo A. R. Silva" , linux-hardening@vger.kernel.org Subject: [PATCH][next] usb: gadget: s3c-hsudc: Use struct_size() in devm_kzalloc() Message-ID: <20210513193353.GA196565@embeddedor> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make use of the struct_size() helper instead of an open-coded version, in order to avoid any potential type mistakes or integer overflows that, in the worse scenario, could lead to heap overflows. This code was detected with the help of Coccinelle and, audited and fixed manually. Signed-off-by: Gustavo A. R. Silva --- drivers/usb/gadget/udc/s3c-hsudc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/udc/s3c-hsudc.c b/drivers/usb/gadget/udc/s3c-hsudc.c index 7bd5182ce3ef..89f1f8c9f02e 100644 --- a/drivers/usb/gadget/udc/s3c-hsudc.c +++ b/drivers/usb/gadget/udc/s3c-hsudc.c @@ -1220,9 +1220,8 @@ static int s3c_hsudc_probe(struct platform_device *pdev) struct s3c24xx_hsudc_platdata *pd = dev_get_platdata(&pdev->dev); int ret, i; - hsudc = devm_kzalloc(&pdev->dev, sizeof(struct s3c_hsudc) + - sizeof(struct s3c_hsudc_ep) * pd->epnum, - GFP_KERNEL); + hsudc = devm_kzalloc(&pdev->dev, struct_size(hsudc, ep, pd->epnum), + GFP_KERNEL); if (!hsudc) return -ENOMEM; -- 2.27.0