From: Theodore Ts'o Date: Thu, 12 Jun 2025 16:33:44 +0000 (-0230) Subject: fuse2fs: correctly handle system errno values in __translate_error() X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=71f046a788adbae163c9398fccf50fff89bb9083;p=tools%2Fe2fsprogs.git 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 --- diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c index bc49edf..97b1c5b 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;