From 71f046a788adbae163c9398fccf50fff89bb9083 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 12 Jun 2025 14:03:44 -0230 Subject: [PATCH] fuse2fs: correctly handle system errno values in __translate_error() Fixes: 81cbf1ef4f5dab ("misc: add fuse2fs, a FUSE server for e2fsprogs") Reported-by: "Darrick J. Wong" Signed-off-by: Theodore Ts'o --- misc/fuse2fs.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index bc49edfe..97b1c5b5 100644 --- a/misc/fuse2fs.c +++ b/misc/fuse2fs.c @@ -4659,9 +4659,9 @@ static int __translate_error(ext2_filsys fs, ext2_ino_t ino, errcode_t err, int is_err = 0; /* Translate ext2 error to unix error code */ - if (err < EXT2_ET_BASE) - goto no_translation; switch (err) { + case 0: + break; case EXT2_ET_NO_MEMORY: case EXT2_ET_TDB_ERR_OOM: ret = -ENOMEM; @@ -4755,11 +4755,10 @@ static int __translate_error(ext2_filsys fs, ext2_ino_t ino, errcode_t err, break; default: is_err = 1; - ret = -EIO; + ret = (err < 256) ? -err : -EIO; break; } -no_translation: if (!is_err) return ret; -- 2.47.2