All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] omfs: detect metadata chain cycles
@ 2026-07-01 22:02 이상호
  2026-07-01 22:02 ` [PATCH 1/2] omfs: detect directory sibling " 이상호
  2026-07-01 22:02 ` [PATCH 2/2] omfs: detect file extent " 이상호
  0 siblings, 2 replies; 3+ messages in thread
From: 이상호 @ 2026-07-01 22:02 UTC (permalink / raw)
  To: Bob Copeland; +Cc: linux-karma-devel, linux-kernel, 이상호

OMFS stores directory sibling chains and file extent continuation chains
on disk. Both chains are terminated by ~0, but the next block values are
image-controlled.

A crafted filesystem can create a cycle in either chain. Lookup of a
missing directory entry or read of a file with a cyclic extent
continuation then loops in the kernel.

This series detects cycles in both metadata chains. I verified the fixes
with crafted OMFS images:

- directory sibling self-cycle:
  unpatched kernel timed out after "statting /mnt/missing";
  patched kernel returned ELOOP.

- file extent continuation self-cycle:
  unpatched kernel timed out after "reading /mnt/loopfile";
  patched kernel returned from read with EIO.

Valid directory and file images continued to behave normally.

이상호 (2):
  omfs: detect directory sibling chain cycles
  omfs: detect file extent chain cycles

 fs/omfs/dir.c  | 64 +++++++++++++++++++++++++++++++++++++++-
 fs/omfs/file.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 141 insertions(+), 2 deletions(-)

-- 
2.43.0

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-07-01 22:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 22:02 [PATCH 0/2] omfs: detect metadata chain cycles 이상호
2026-07-01 22:02 ` [PATCH 1/2] omfs: detect directory sibling " 이상호
2026-07-01 22:02 ` [PATCH 2/2] omfs: detect file extent " 이상호

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.