From 9f6d1bf3bbf16cef4a08b67894c827059dd401a8 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 11 Jun 2025 09:44:01 -0700 Subject: [PATCH] fuse2fs: fix error bailout in op_create Tim Woodall pointed out that op_create returns garbage error codes if the ext2fs_extent_open2 in op_create fails. Worse than that, it also neglects to drop the bfl and leaks temp_path. Let's fix all that. Cc: linux-ext4@vger.kernel.org # v1.43 Fixes: 81cbf1ef4f5dab ("misc: add fuse2fs, a FUSE server for e2fsprogs") Reported-by: Tim Woodall Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- misc/fuse2fs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index 97b1c5b5..d889bda4 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -3307,8 +3307,11 @@ static int op_create(const char *path, mode_t mode, struct fuse_file_info *fp) inode.i_flags &= ~EXT4_EXTENTS_FL; ret = ext2fs_extent_open2(fs, child, EXT2_INODE(&inode), &handle); - if (ret) - return ret; + if (ret) { + ret = translate_error(fs, child, err); + goto out2; + } + ext2fs_extent_free(handle); } -- 2.47.3