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 CA7BAC369D1 for ; Tue, 22 Apr 2025 10:38:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D61F96B0008; Tue, 22 Apr 2025 06:38:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D0E396B000A; Tue, 22 Apr 2025 06:38:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B619B6B000C; Tue, 22 Apr 2025 06:38:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 92AC36B0008 for ; Tue, 22 Apr 2025 06:38:12 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 72AE31607EA for ; Tue, 22 Apr 2025 10:38:13 +0000 (UTC) X-FDA: 83361330066.14.299EFDF Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by imf16.hostedemail.com (Postfix) with ESMTP id 6F81B18000C for ; Tue, 22 Apr 2025 10:38:11 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=wkNm9QeP; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf16.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.221.52 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745318291; a=rsa-sha256; cv=none; b=UIpecbjLsk1hD4j6L9fMWRo7o4ajwq4ZeNSwGC9eKRr3jmpC+gQ+kMq8EX31K3/NITX4X9 bIlXOGCi3cnAwH5CDso5eQ27/S/0XPo3ew1Z3PugcIm/1nHaIJdLvFJoHyNzPBjiV4nMCP Eqf6FS8mwZjSEBkD93qqR14m+g27fs0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=wkNm9QeP; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf16.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.221.52 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745318291; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=x36ME9YCkgctStKKRl+yxhgMtdLAC+ajKdEDhmCB47Q=; b=WhTnOtXU43oSRvWiolOOWsq2Y0YzYmykmYtbAd/utT91rJg81NmDciL6ezw5KNXzs8Zg2F MOGklJlun3065YYupN2aCJeWRz1DfxSLWEF5fLpDJyOu/YWSnuZVcPBYeUKULxcYGw6D7j z0tcn7kYCsVAaNUcM8C4jqWQ255Ai6o= Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-39ee57c0b8cso4831389f8f.0 for ; Tue, 22 Apr 2025 03:38:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1745318290; x=1745923090; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=x36ME9YCkgctStKKRl+yxhgMtdLAC+ajKdEDhmCB47Q=; b=wkNm9QePLS+mfyVTr2hB82xbLm2ygF9CL/Kzn1KJnnt6btOYbvDomubhAA6yon0HTt JNAyvfhN7fBpRqwaR1rrrWnl8FjfWjTV36Q17my1kHDjBnYJ4kEfAhSMLLmDCDjqtoWV 7px4PhdnxYPtYQKL1i5H17gDamGWClzKF+UTgPdiIu5POhUYmwJXtDqJ1eFwRI+I58/4 GpeHCYESZw4bgvIhMGdUfxFdIHWq1f2JdWplOBMrxlT5gPiXJVQw9SI8a1Qu6cn7XBua PbxyAXO589beRYQFWHsoyWSoIWYIqvC1CMT3h261r8Wl5KWAqIml99dAJeqSk5zDxo7p h33A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745318290; x=1745923090; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=x36ME9YCkgctStKKRl+yxhgMtdLAC+ajKdEDhmCB47Q=; b=gmTmfglyMe/hebc/ThaiCXtmpbmTbXWl3n3sVvq1P50bWmNJvx0UouCeUTpbrKqb31 ol9rovzOCSiqaRN6N712wDpGIkyf90ngxW2vKXI4UuGj7adURNQxS+XiihcfsTfM4nR2 cQUZDjpRuqAhaCXvUXLQ6ljxHl+XmeVVMYxC5aLeN5LYCP3hNv2TdOFFOcaVHHQWq/hA dOIMtqBhSxdQZ3GFr6KAfjn2wTcmMwPynPFZN7QUQUYUFmF2n3QD6aAxqGB74+WVjn70 LbdLSrY2SV0CJqreaAYQG9/ljtTkRKTAXnMK9aQPtFZDK3H4LI9syAuIYKKGSNnN1PVe HraQ== X-Forwarded-Encrypted: i=1; AJvYcCUZGVpa22RUmUSmUaUCureHRZIcKvcpsjC+kBt5sqo6F1IMI/VP3/lbPwyNCTROpT9nCxDQ2uFqEQ==@kvack.org X-Gm-Message-State: AOJu0YzaIzReP1qYg2OQ1TdGX655Dbp9fIiNzSG6GXt6BKLI0B0BbVFW QElOcHJecl1Iu9ogDdNZGD9I2dr/oudpLvOcw0eC1OJjrtzBJqsREF8iE+22LSM= X-Gm-Gg: ASbGncvT5UePi0EN62k00SPszLfxQh/6L+9guN1NqzIcQkqV8UJJO0IP0V/spRkT4hD SNIiOBwkUJGMeEq7igyaibLmAUUjnx3IdjqtYlAQ6ff1TT46PYPQ8EyKyjUt2vbEMq6LFj7PC9G 0N0WOvVQsmt0KkzDXCpZryOnD5ViVQGnF4ZFYnftzaWmyAHXdRMpwvbwo0ZecZZYPBHeIsedqQQ 3tyv0RSMAe/14lNkRNjUlhOLDtDmIH1LrwdHURBY9/L7Vb2y539tf4/q8hrA0i+ghvwNz2n1RCc 0hn7J8UvYr4p70W1xODBsUhWBnPlbiLF57EdNCxOyuHTeg== X-Google-Smtp-Source: AGHT+IHmdZrRl8dVYpwJVQVgKnWXt370mTD794FHi8G5zh54eb5aEDf4XYuBmeYKL/FdPLvQGd7cdw== X-Received: by 2002:a5d:64a5:0:b0:391:4914:3c6a with SMTP id ffacd0b85a97d-39efba5c644mr10470205f8f.29.1745318289843; Tue, 22 Apr 2025 03:38:09 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-39efa421c79sm14615464f8f.1.2025.04.22.03.38.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Apr 2025 03:38:09 -0700 (PDT) Date: Tue, 22 Apr 2025 13:38:05 +0300 From: Dan Carpenter To: Su Hui Cc: sj@kernel.org, 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() Message-ID: <2713f419-760b-4ccc-aeed-de9c4c899506@stanley.mountain> References: <20250421062423.740605-1-suhui@nfschina.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250421062423.740605-1-suhui@nfschina.com> X-Rspamd-Queue-Id: 6F81B18000C X-Stat-Signature: kkjfgqmcxi4cpsmp58yswom93xet6iz1 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1745318291-325071 X-HE-Meta: U2FsdGVkX19Gh+hhqVnxphhoug93VrMfrCKjLLwkbzykKE/n3kqnAcnCl3GA5GYzK9b2/IogTRg8FoeCvA7AovycbM3SdIy8ufh6BlWC6SoFobGIT19s2QIQlVba/Pb3kny0fTFUaZ8DLyJ7MJcL1PBhBshpHwHIIZ5PV3AGloy+7Kp9CCXc9AUSrjUG5daz6ZxITg40EunDp66M7oBYDpyEUwtqaaJtodyZexQwffUJrplvBYsnnw4MhYt0p2mLO7fP8rwpiinfd4j2FA90hawI7IzOazbufMZMEwLAWNALdZWHF6lUOkrllxYMXeo5hPA1v/lfth9oTWNuAk1hR6ew3HFlW9CfZ52Hs3yW5nB6lIwys47POkoiG5MxsqLDIf7iryQGiKOI4UM7Rn+rjQvKjctC3lrgoSuHFewINBSG0yUqN96+iOgIvfN749824nJq0iK+MrDMBrwX3QYe4OKjrsGylh/DeJUg7qBDaidKMvZgTM/XPokX9ivFC6/RgagQcuZiAB7jQ+gYqdc43R5TFF0picTiWrrCNduPYEymZXxwSy0p24hEiB2r9BdIUj7rvLJfwvG2YdAIWo94vJSR9YZrHaydjHmBYN8QJ3alXRRlnvtKnfMAizRqDeZ254DASzrOjHoYHR1l8AWAzz+ZCt5Imu/0kuWnecYLXcj1smpA58RRrt2sMyjApdNwKG63QiWN4GTKZTchV8h1n6YO/JF1+IbqPzOy2jXje3nUYCmnFz1sO9M4tK1qCIRLoT16Tpb78j5sfb6O8C7LUmAZ/TdwQXIRtuvs7J8xWtogC0itNB7Yt6iwanamZAZKxdedBgZLVFcLPjgBgA4INfi2LftaeumE/hlK2xoWkqKQ8RFPNCfGoNcMkWXxeAKw/s+M2k9rCPJVF2GyAFYH0Aj/1D6Z/2NPLGAi8nnWfkInQm2wR///O3geAptuzzGrCNzDa4lL+Us5XJ5/JVm uSi8Jm1U YZQWWXLSMuo07/ojprrow+vjSFHCFkiNDpOz8GM8I2CdWI8UGZ6Mnu/b9UJUNxxtDN6w3zyy996jM6Ogpq5AKFeOxCT4m10nkMgX8tOIyi6NduWBs/ujWhJbuZTuPr14MuHns6Y9jCXwwj87uEBZhO3IHTDjqckMCbUGWMqrmmEYVxNhpMu8INEwm6zgH2iypRtCZ8uG01Wl1CisE3Q1QbKaOi6hC0BLAro7KqJsSAW3UaSsQY5CbKKXQjkxXBQdfkmfIAnI8DlD1jouOYQTc/NAzAA21T/iK6h3PNDGmOdLXMgqEPZZemSZiuuq32EmdGCduP9ToiZBWeslfuiY5s22lnlcLA6QWYbZbsOzPEdPGCNwuNJlw0gVJdAZPgr2QHr5H 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 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 > --- > mm/damon/sysfs-schemes.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c > index 23b562df0839..79220aba436f 100644 > --- 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. > > if (!path) > return -ENOMEM; > @@ -2035,7 +2036,7 @@ static int damon_sysfs_memcg_path_to_id(char *memcg_path, unsigned short *id) > if (!memcg_path) > return -EINVAL; > > - path = kmalloc(sizeof(*path) * PATH_MAX, GFP_KERNEL); > + path = kmalloc_array(PATH_MAX, sizeof(*path), GFP_KERNEL); If we boost PATH_MAX to that high then we're going to run into all sorts of other issues first. regards, dan carpenter