]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
freevxfs: don't BUG() on unknown typed-extent type
authorFarhad Alemi <farhad.alemi@berkeley.edu>
Tue, 2 Jun 2026 03:10:08 +0000 (20:10 -0700)
committerChristian Brauner <brauner@kernel.org>
Wed, 1 Jul 2026 13:26:26 +0000 (15:26 +0200)
vxfs_bmap_typed() handles four typed-extent types and calls BUG() in
its default case, so an on-disk typed extent with any other type value
crashes the kernel. It is reachable from ioctl(FIBMAP) on a regular
file:

  kernel BUG at fs/freevxfs/vxfs_bmap.c:230!
  RIP: vxfs_bmap_typed fs/freevxfs/vxfs_bmap.c:230 [inline]
       vxfs_bmap1+0x128a/0x12d0 fs/freevxfs/vxfs_bmap.c:257

Replace the BUG() with WARN_ON_ONCE() and return 0 -- the value
vxfs_bmap_typed() already returns on failure (and from the DEV4 case
above); vxfs_getblk() maps 0 to -EIO, so the ioctl fails cleanly.

Reported-by: Farhad Alemi <farhad.alemi@berkeley.edu>
Signed-off-by: Farhad Alemi <farhad.alemi@berkeley.edu>
Link: https://patch.msgid.link/CA+0ovChveuAwv=t15dr2m09E32bM48hHJxvfeEYZOhdNiEc9Tw@mail.gmail.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/freevxfs/vxfs_bmap.c

index e85222892038fd676d0bc02b9a8b00d1e3799142..1b8216eb1d90a25e24f3c8624dd55ca6fd1cbd17 100644 (file)
@@ -227,7 +227,8 @@ vxfs_bmap_typed(struct inode *ip, long iblock)
                        return 0;
                }
                default:
-                       BUG();
+                       WARN_ON_ONCE(1);
+                       return 0;
                }
        }