]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
erofs: fix incorrect early exits in volume label handling
authorGao Xiang <hsiangkao@linux.alibaba.com>
Mon, 29 Dec 2025 09:29:47 +0000 (17:29 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Thu, 22 Jan 2026 16:02:57 +0000 (00:02 +0800)
Crafted EROFS images containing valid volume labels can trigger
incorrect early returns, leading to folio reference leaks.

However, this does not cause system crashes or other severe issues.

Fixes: 1cf12c717741 ("erofs: Add support for FS_IOC_GETFSLABEL")
Cc: stable@kernel.org
Reviewed-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/super.c

index b54083128e0f4e0181b8c3499f5623bb8b8d6980..ee37628ec99fb3e7186d45d37906618855010c5c 100644 (file)
@@ -347,8 +347,10 @@ static int erofs_read_superblock(struct super_block *sb)
        if (dsb->volume_name[0]) {
                sbi->volume_name = kstrndup(dsb->volume_name,
                                            sizeof(dsb->volume_name), GFP_KERNEL);
-               if (!sbi->volume_name)
-                       return -ENOMEM;
+               if (!sbi->volume_name) {
+                       ret = -ENOMEM;
+                       goto out;
+               }
        }
 
        /* parse on-disk compression configurations */