mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] xfs: fix temporary cursor leak in btree shift corruption paths
@ 2026-11-02 15:01 jianyungao89
  2026-11-02 15:22 ` Carlos Maiolino
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: jianyungao89 @ 2026-11-02 15:01 UTC (permalink / raw)
  To: linux-kernel
  Cc: Jianyun Gao, stable, Carlos Maiolino, Darrick J. Wong,
	Alexei Starovoitov, Kefeng Wang, Viktor Malik, Yuzuki Ishiyama,
	Bill O'Donnell, David Chinner, Lachlan McIlroy,
	open list:XFS FILESYSTEM

From: Jianyun Gao <jianyungao89@gmail.com>

In xfs_btree_lshift and xfs_btree_rshift, when XFS_IS_CORRUPT detects
an invalid firstrec/lastrec result after xfs_btree_dup_cursor has
successfully allocated a temporary cursor, the error path jumps to
error0 which returns without freeing tcur.  This leaks the cursor
memory, the xfs_group reference, and the per-level buffer references
held by the duplicated cursor.  Jump to error1 instead, which calls
xfs_btree_del_cursor(tcur, XFS_BTREE_ERROR) to properly release all
resources.

Cc: stable@vger.kernel.org
Fixes: 9eaead51bed95 ("[XFS] implement generic xfs_btree_rshift")
Signed-off-by: Jianyun Gao <jianyungao89@gmail.com>
---
 fs/xfs/libxfs/xfs_btree.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c
index 7effebe297ea..d706f59b0301 100644
--- a/fs/xfs/libxfs/xfs_btree.c
+++ b/fs/xfs/libxfs/xfs_btree.c
@@ -2567,7 +2567,7 @@ xfs_btree_lshift(
 		if (XFS_IS_CORRUPT(tcur->bc_mp, i != 1)) {
 			xfs_btree_mark_sick(cur);
 			error = -EFSCORRUPTED;
-			goto error0;
+			goto error1;
 		}
 
 		error = xfs_btree_decrement(tcur, level, &i);
@@ -2737,7 +2737,7 @@ xfs_btree_rshift(
 	if (XFS_IS_CORRUPT(tcur->bc_mp, i != 1)) {
 		xfs_btree_mark_sick(cur);
 		error = -EFSCORRUPTED;
-		goto error0;
+		goto error1;
 	}
 
 	error = xfs_btree_increment(tcur, level, &i);
-- 
2.34.1


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

end of thread, other threads:[~2026-11-03 14:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-02 15:01 [PATCH] xfs: fix temporary cursor leak in btree shift corruption paths jianyungao89
2026-11-02 15:22 ` Carlos Maiolino
2026-11-03 10:02 ` Carlos Maiolino
2026-11-03 10:43 ` Markus Elfring
2026-11-03 14:12   ` Jianyun Gao
2026-11-03 14:40     ` Markus Elfring
2026-11-03 14:55 ` [PATCH] " Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®