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: Valdis Kletnieks <valdis.kletnieks@vt.edu> Link: https://lore.kernel.org/r/245727.1567183359@turing-police Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
097a802ae1
commit
58985a9d2d
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue