Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58985a9d authored by Valdis Kletnieks's avatar Valdis Kletnieks Committed by Greg Kroah-Hartman
Browse files

drivers/staging/exfat - by default, prohibit mount of fat/vfat



Concerns have been raised about the exfat driver accidentally mounting
fat/vfat file systems.  Add an extra configure option to help prevent that.

Signed-off-by: default avatarValdis Kletnieks <valdis.kletnieks@vt.edu>
Link: https://lore.kernel.org/r/245727.1567183359@turing-police


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 097a802a
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -4,6 +4,14 @@ config EXFAT_FS
	help
	  This adds support for the exFAT file system.

config EXFAT_DONT_MOUNT_VFAT
	bool "Prohibit mounting of fat/vfat filesysems by exFAT"
	default y
	help
	  By default, the exFAT driver will only mount exFAT filesystems, and refuse
	  to mount fat/vfat filesystems.  Set this to 'n' to allow the exFAT driver
	  to mount these filesystems.

config EXFAT_DISCARD
	bool "enable discard support"
	depends on EXFAT_FS
+6 −0
Original line number Diff line number Diff line
@@ -486,10 +486,16 @@ static int ffsMountVol(struct super_block *sb)
			break;

	if (i < 53) {
#ifdef CONFIG_EXFAT_DONT_MOUNT_VFAT
		ret = -EINVAL;
		printk(KERN_INFO "EXFAT: Attempted to mount VFAT filesystem\n");
		goto out;
#else
		if (GET16(p_pbr->bpb + 11)) /* num_fat_sectors */
			ret = fat16_mount(sb, p_pbr);
		else
			ret = fat32_mount(sb, p_pbr);
#endif
	} else {
		ret = exfat_mount(sb, p_pbr);
	}