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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 09A77C369C2 for ; Tue, 22 Apr 2025 18:23:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C16B06B0005; Tue, 22 Apr 2025 14:23:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BC51A6B0006; Tue, 22 Apr 2025 14:23:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A8CE56B0008; Tue, 22 Apr 2025 14:23:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8CCBD6B0005 for ; Tue, 22 Apr 2025 14:23:36 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 81C9314120F for ; Tue, 22 Apr 2025 18:23:37 +0000 (UTC) X-FDA: 83362502874.07.E384BD0 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf03.hostedemail.com (Postfix) with ESMTP id DA11E20005 for ; Tue, 22 Apr 2025 18:23:35 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=kVuGwvnM; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf03.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745346215; a=rsa-sha256; cv=none; b=8aDHt42UQox6u5W/qp4bLHmnK//08WyCpD7TvMeYnZU27AX1nO+Hdkei+04MtR0c33w2ru xqPlrwtZN99YHu4ApxczBYxTQZ+N5LD9GWh+3OaBBDoPd7IFRWf8yTgmS6TqfD0AS3bDWU hrXSBLfPNvr5hH3guNDpdrGCd7mW2GQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745346215; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SRdgL3avnqFCjaHhHM1hvwvcCAnUi2RL2h25K43UynU=; b=v6SdmJVFzhyIKfAZ5hIcWJbrB5aUYlD2a2qb5jKH2Snz7EPojqF2dfAX2EGaNmFFHNo8FR M5mm174rCLoLbJ2Mv7hosuPgR4JUXL3prJJtkCgz6cSTO4HQ09u7b7+uVSYIZdoC4NIOiM EX74hg0wlZ156Y8OibnWvr2F/hgA2tE= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=kVuGwvnM; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf03.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id E73A9A485D4; Tue, 22 Apr 2025 18:18:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7DADDC4CEE9; Tue, 22 Apr 2025 18:23:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745346214; bh=GGXktewUewz/nCPocxoFhsFF9bvV8KlcmNW4nrQWjcc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kVuGwvnMr+u4BSDFaJL/SXFU1tLN3/lIs8TFy9Cp/fEd2OvgyB5p7cFFlAuGwT25E RCpYhsm7RHsum7fe1q5P9CLJ/RUn2MgPSqJRHqsE0nmPv0mSCoigwSkkhUO+RVAVGR aQTEio9Jjves6Dw+qpggK2wB5EYeDL/+JRRkhw0HcEQq6gvG6of3aJfLld1Ew1coOI YKVJESESm9ImKsIRyq8zfK7nZh2HWi5nYuqiP0qmmX7MuMXRHENXmclpbP4K7WgtkI 53CuTReAorBsHbfTiFf/4vGeATfOqDyDp3AJxxHYXnmy+T+EZ5nG3Hbti3T5XS4VEy oQUWAJEAfYjkA== From: SeongJae Park To: Dan Carpenter Cc: SeongJae Park , Su Hui , akpm@linux-foundation.org, damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, linux-hardening@vger.kernel.org Subject: Re: [PATCH] mm/damon/sysfs-schemes: using kmalloc_array() and size_add() Date: Tue, 22 Apr 2025 11:23:31 -0700 Message-Id: <20250422182331.59651-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: DA11E20005 X-Stat-Signature: zawk9utws4sr5a4bd8ada855jb1bzrzx X-Rspam-User: X-HE-Tag: 1745346215-319801 X-HE-Meta: U2FsdGVkX18CIEYeg798cicLJDJF7jRbpMJfwE86pP5uXMPYIL4fKkGNlP3Fuq8zrylrg8ju0ayuCPAA31nhYhFIAlq1SblRgJhgZ/YkuxhfnD2iw+FD8H9hOzDRmI6YjQuzm7jHckvRZgqCU8xH8KXZ7yqQk4GxtiYoskpThJTIaMuT+mVxpL5WD5zXgFSUix3DLOE1ap8q1DiJKYdtqeNgYzyIcEar/X/HTtqJxyHubk5/FLX1Hnc9aqJr1OtrRroVTn5kXIYQ3N5uyxYbYtT6/3iZfRlCXVLN7Qz8i1uXoIMAM0h7QvSksXfX5ayFaxTn4AxeixhR6NUYTVHhxe68YUCJ+hiBa6PDv9Dx0QffvWsbM28gs053/HKJBvxGS/yBf3sre+ttX0hvEG8Y2v6xP7+wzKs6+0SAc1ImwRWLPaehaxG5cLncF4wVsqW8YFGljt4mgseRg+Ax0o7uJKRh/YJt5WypGgyR4fI+RuIlj7pJN/2SfRzhlhMB2LTImHtlul2QsnP52mXmzf7hlJvhbzmArNAbpKeLOlYmTFZ+aKtnpHZNMjQB24xzF8sJQtM/onzGZgbOdwKGjTWeGtUMdB4wwVsw+duhmIviXmlmOFtZzBGDwxIKZKphP3jvBZXVLzZsj1bQx+3gs4J/t9jcr1HqaNb3eDMKgLjK9HJn709VEsm8yZ2O4b7GKyHWTtyClP5YvpHEYFiI+ZXKIoVj72KF7ckBRDhbPTspgcOX8GKuiB7LSQeMelv3rHz5FYdfmwCai6EFnIyfwKS7u2WL9IZgz0RM7BDGEv7k4a0ChDA2lAb8us+JNSUziIn78rLnd2O7NAGcI6+04OlBZukp5P6gtoF90EeZvxsMjzuxZO2oE+MplmkeremJrtpg9bgia0hDAVk4mISf/V8aTE9Bg9v/1CJhCTYbF7jLtwKA5M7uy9wHnuHfVt7+Csnjrgb9JoAUtbs1umJmwgL KjGL0O2l w8cmHmmHZy0nd3Xo9b8OZrddxhivpr4p8/r9B/KmJzfgu27hraNWf4ObXytfBuvW+McW7AbFdP3gzJV84xjvQmF4EROOza+mPd+RDpRfiu9ongnZimg3K/o77VdeuX3zHhou+9LAXpT/n4Y+0/hmsYfGRcFZEMJ16U0kpKlt3cWHgG/QmSmqB2UyKHWJdcgbUCQmUkGrUOWX/DI04dv8ZFg2iAebqJHSa9gPdZSJimd1FkHXQ6r7E4DEuSn5ABCY9jxRaWDNOPCXRoMppGjSuPHbhMifkL28H32biWmyis6B9gFlO751tHZhPnnShQiBRln8GaxB6ICVHN1rfLCMEkWyoIvTwbJ6akt9bsYiuRHQ3XepsqwN1d/+F5Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, 22 Apr 2025 13:44:39 +0300 Dan Carpenter wrote: > On Tue, Apr 22, 2025 at 01:38:05PM +0300, Dan Carpenter wrote: > > On Mon, Apr 21, 2025 at 02:24:24PM +0800, Su Hui wrote: > > > It's safer to using kmalloc_array() and size_add() because it can > > > prevent possible overflow problem. > > > > > > Signed-off-by: Su Hui [...] > > > --- a/mm/damon/sysfs-schemes.c > > > +++ b/mm/damon/sysfs-schemes.c > > > @@ -465,7 +465,8 @@ static ssize_t memcg_path_store(struct kobject *kobj, > > > { > > > struct damon_sysfs_scheme_filter *filter = container_of(kobj, > > > struct damon_sysfs_scheme_filter, kobj); > > > - char *path = kmalloc(sizeof(*path) * (count + 1), GFP_KERNEL); > > > + char *path = kmalloc_array(size_add(count, 1), sizeof(*path), > > > + GFP_KERNEL); > > > > Count is clamped in rw_verify_area(). > > > > Smatch does a kind of ugly hack to handle rw_verify_area() which is that > > it says neither the count nor the pos can be more than 1G. And obviously > > files which are larger than 2GB exist but pretending they don't silences > > all these integer overflow warnings. > > > > Actually rw_verify_area() ensures that "pos + count" can't overflow. But > here we are multiplying. Fortunately, we are multiplying by 1 so that's > safe and also count can't be larger than PAGE_SIZE here which is safe as > well. Thank you for adding these details, Dan. I understand the size_add() change can make warnings slience, though it is not really fixing a real bug. So I believe there is no action item to make a change to this patch. Maybe making the commit message more clarified can be helpful, though? Please let me know if I'm misunderstanding your point and/or you want some changes. Thanks, SJ > > regards, > dan carpenter