Re: [PATCH v4 0/5] Improve simple directory offset wrap behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/4/24 10:52 AM, cel@xxxxxxxxxx wrote:
From: Chuck Lever <chuck.lever@xxxxxxxxxx>

The purpose of this series is to construct a set of upstream fixes
that can be backported to v6.6 to address CVE-2024-46701.

My original plan was to add a cursor dentry. However, I've found a
solution that does not need one. In fact, most or all of the
reported issues are gone with 4/5. Thus I'm not sure 5/5 is
necessary, but it seems like a robust improvement.

Changes since v3:
- Series is no longer RFC
- Series passes xfstests locally and via NFS export
- Patch 2/5 was replaced; it now removes simple_offset_empty()
- 4/5 and 5/5 were rewritten based on test results
- Patch descriptions have been clarified

This series (still against v6.12) has been pushed to:

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git/log/?h=tmpfs-fixes

Next step is to try backporting these to v6.6 to see if anything
else is needed.

Chuck Lever (5):
   libfs: Return ENOSPC when the directory offset range is exhausted
   Revert "libfs: Add simple_offset_empty()"
   Revert "libfs: fix infinite directory reads for offset dir"
   libfs: Replace simple_offset end-of-directory detection
   libfs: Use d_children list to iterate simple_offset directories

  fs/libfs.c         | 158 ++++++++++++++++++++++-----------------------
  include/linux/fs.h |   1 -
  mm/shmem.c         |   4 +-
  3 files changed, 81 insertions(+), 82 deletions(-)


I've backported these, as a proof of concept, to origin/linux-6.6.y. You
can find that here:

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git/log/?h=nfsd-6.6.y

This series passes xfstests, including generic/736.

It would be a little cleaner if I could also backport da549bdd15c2
("dentry: switch the lists of children to hlist"), but that has similar
risks as backporting the Maple tree patches.


--
Chuck Lever




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux