All of lore.kernel.org
 help / color / mirror / Atom feed
From: SeongJae Park <sj@kernel.org>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: SeongJae Park <sj@kernel.org>, Su Hui <suhui@nfschina.com>,
	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	[thread overview]
Message-ID: <20250422182331.59651-1-sj@kernel.org> (raw)
In-Reply-To: <adbc06d8-1a6c-4279-9596-d743505d64dd@stanley.mountain>

On Tue, 22 Apr 2025 13:44:39 +0300 Dan Carpenter <dan.carpenter@linaro.org> 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 <suhui@nfschina.com>
[...]
> > > --- 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

  reply	other threads:[~2025-04-22 18:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-21  6:24 [PATCH] mm/damon/sysfs-schemes: using kmalloc_array() and size_add() Su Hui
2025-04-21 17:07 ` SeongJae Park
2025-04-22 10:38 ` Dan Carpenter
2025-04-22 10:44   ` Dan Carpenter
2025-04-22 18:23     ` SeongJae Park [this message]
2025-04-22 18:50       ` Christophe JAILLET
2025-04-23  2:04         ` Su Hui
2025-04-23  5:38           ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250422182331.59651-1-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=damon@lists.linux.dev \
    --cc=dan.carpenter@linaro.org \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=suhui@nfschina.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.