All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pratyush Yadav <pratyush@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Pratyush Yadav <pratyush@kernel.org>,
	 Chenghao Duan <duanchenghao@kylinos.cn>,
	 pasha.tatashin@soleen.com,  rppt@kernel.org,
	linux-kernel@vger.kernel.org,  linux-mm@kvack.org,
	jianghaoran@kylinos.cn
Subject: Re: [PATCH v3 7/7] mm/memfd_luo: fix integer overflow in memfd_luo_preserve_folios
Date: Fri, 03 Apr 2026 09:06:46 +0000	[thread overview]
Message-ID: <2vxzqzowe7kp.fsf@kernel.org> (raw)
In-Reply-To: <20260402105845.f4d375734c0b21a1203fb9c0@linux-foundation.org> (Andrew Morton's message of "Thu, 2 Apr 2026 10:58:45 -0700")

On Thu, Apr 02 2026, Andrew Morton wrote:

> On Thu, 02 Apr 2026 12:06:58 +0000 Pratyush Yadav <pratyush@kernel.org> wrote:
>
>> On Thu, Mar 26 2026, Chenghao Duan wrote:
>> 
>> > In memfd_luo_preserve_folios(), two variables had types that could cause
>> > silent data loss with large files:
>> >
>> > 1. 'size' was declared as 'long', truncating the 64-bit result of
>> >    i_size_read(). On 32-bit systems a 4GB file would be truncated to 0,
>> >    causing the function to return early and discard all data.
>> 
>> As Pasha said, KHO and LUO are not expected to run on 32-bit systems.
>> Plus, since i_size_read() returns loff_t, why use u64 when you can just
>> match the type and just use loff_t (which on 64-bit is long anyway)? I
>> don't get why u64 is any better than long or loff_t.
>> 
>> >
>> > 2. 'max_folios' was declared as 'unsigned int', causing overflow for
>> >    sparse files larger than 4TB. For example, a 16TB+4KB file would
>> >    calculate 0x100000001 folios but truncate to 1 when assigned to
>> >    max_folios, causing memfd_pin_folios() to pin only the first folio.
>> 
>> Using unsigned int was intentional. We pass max_folios to
>> memfd_pin_folios(), which expects an unsigned int. So this change is
>> pointless unless you go and update memfd_pin_folios() too.
>> 
>> I think making memfd_pin_folios() use unsigned long for max_folios makes
>> a lot of sense, so can you please go update that first before making
>> this change? And when you do, please match the type of the argument to
>> the type you use here instead of using u64. This can be a separate,
>> independent patch series.
>
> Thanks.  I'll drop this patch.  The preceding six patches are looking
> well-reviewed and ready to go?

Yes. The first six patches are good to go.

I think the changes in this one can be split off as a separate series
since it will be a bit more involved.

>
> Chenghao, please prepare any update for this patch against the
> preceding six.  Or against tomorrow's mm-unstable or mm-new or
> linux-next.
>

-- 
Regards,
Pratyush Yadav


  reply	other threads:[~2026-04-03  9:06 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-26  8:47 [PATCH v3 0/7] Modify memfd_luo code Chenghao Duan
2026-03-26  8:47 ` [PATCH v3 1/7] mm/memfd: use folio_nr_pages() for shmem inode accounting Chenghao Duan
2026-04-02  1:23   ` Pasha Tatashin
2026-04-02 10:59   ` Pratyush Yadav
2026-03-26  8:47 ` [PATCH v3 2/7] mm/memfd_luo: optimize shmem_recalc_inode calls in retrieve path Chenghao Duan
2026-04-02 11:02   ` Pratyush Yadav
2026-04-10  1:45     ` Chenghao Duan
2026-04-16  9:35       ` Pratyush Yadav
2026-03-26  8:47 ` [PATCH v3 3/7] mm/memfd_luo: remove unnecessary memset in zero-size memfd path Chenghao Duan
2026-03-26  8:47 ` [PATCH v3 4/7] mm/memfd_luo: use i_size_write() to set inode size during retrieve Chenghao Duan
2026-03-26  8:47 ` [PATCH v3 5/7] mm/memfd_luo: fix physical address conversion in put_folios cleanup Chenghao Duan
2026-04-02  1:30   ` Pasha Tatashin
2026-04-02 11:06   ` Pratyush Yadav
2026-04-02 17:43     ` Andrew Morton
2026-03-26  8:47 ` [PATCH v3 6/7] mm/memfd_luo: remove folio from page cache when accounting fails Chenghao Duan
2026-04-02  1:32   ` Pasha Tatashin
2026-04-02 11:52   ` Pratyush Yadav
2026-04-02 17:54     ` Andrew Morton
2026-04-03  9:07       ` Pratyush Yadav
2026-03-26  8:47 ` [PATCH v3 7/7] mm/memfd_luo: fix integer overflow in memfd_luo_preserve_folios Chenghao Duan
2026-04-02  1:39   ` Pasha Tatashin
2026-04-02 12:06   ` Pratyush Yadav
2026-04-02 17:58     ` Andrew Morton
2026-04-03  9:06       ` Pratyush Yadav [this message]
2026-03-26 23:36 ` [PATCH v3 0/7] Modify memfd_luo code Andrew Morton

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=2vxzqzowe7kp.fsf@kernel.org \
    --to=pratyush@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=duanchenghao@kylinos.cn \
    --cc=jianghaoran@kylinos.cn \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=pasha.tatashin@soleen.com \
    --cc=rppt@kernel.org \
    /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.