]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
hfsplus: return EIO when type of hidden directory mismatch in hfsplus_fill_super()
authorYangtao Li <frank.li@vivo.com>
Tue, 5 Aug 2025 16:58:59 +0000 (10:58 -0600)
committerViacheslav Dubeyko <slava@dubeyko.com>
Mon, 1 Sep 2025 01:07:59 +0000 (18:07 -0700)
If Catalog File contains corrupted record for the case of
hidden directory's type, regard it as I/O error instead of
Invalid argument.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Reviewed-by: Viacheslav Dubeyko <slava@dubeyko.com>
Link: https://lore.kernel.org/r/20250805165905.3390154-1-frank.li@vivo.com
Signed-off-by: Viacheslav Dubeyko <slava@dubeyko.com>
fs/hfsplus/super.c

index 86351bdc89859121051aadf360863cacd147f48e..55f42b349a5ee8dcc29ee015eb607386b6229ef4 100644 (file)
@@ -524,7 +524,7 @@ static int hfsplus_fill_super(struct super_block *sb, struct fs_context *fc)
        if (!hfs_brec_read(&fd, &entry, sizeof(entry))) {
                hfs_find_exit(&fd);
                if (entry.type != cpu_to_be16(HFSPLUS_FOLDER)) {
-                       err = -EINVAL;
+                       err = -EIO;
                        goto out_put_root;
                }
                inode = hfsplus_iget(sb, be32_to_cpu(entry.folder.id));