• Qu Wenruo's avatar
    btrfs: reject unknown mount options early · 5f521494
    Qu Wenruo authored
    [BUG]
    The following script would allow invalid mount options to be specified
    (although such invalid options would just be ignored):
    
      # mkfs.btrfs -f $dev
      # mount $dev $mnt1		<<< Successful mount expected
      # mount $dev $mnt2 -o junk	<<< Failed mount expected
      # echo $?
      0
    
    [CAUSE]
    For the 2nd mount, since the fs is already mounted, we won't go through
    open_ctree() thus no btrfs_parse_options(), but only through
    btrfs_parse_subvol_options().
    
    However we do not treat unrecognized options from valid but irrelevant
    options, thus those invalid options would just be ignored by
    btrfs_parse_subvol_options().
    
    [FIX]
    Add the handling for Opt_err to handle invalid options and error out,
    while still ignore other valid options inside btrfs_parse_subvol_options().
    Reported-by: default avatarAnand Jain <anand.jain@oracle.com>
    CC: stable@vger.kernel.org # 4.14+
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    5f521494
super.c 68.9 KB