• Christian Brauner's avatar
    btrfs: check whether fsgid/fsuid are mapped during subvolume creation · 5474bf40
    Christian Brauner authored
    When a new subvolume is created btrfs currently doesn't check whether
    the fsgid/fsuid of the caller actually have a mapping in the user
    namespace attached to the filesystem. The VFS always checks this to make
    sure that the caller's fsgid/fsuid can be represented on-disk. This is
    most relevant for filesystems that can be mounted inside user namespaces
    but it is in general a good hardening measure to prevent unrepresentable
    gid/uid from being written to disk.
    
    Since we want to support idmapped mounts for btrfs ioctls to create
    subvolumes in follow-up patches this becomes important since we want to
    make sure the fsgid/fsuid of the caller as mapped according to the
    idmapped mount can be represented on-disk. Simply add the missing
    fsuidgid_has_mapping() line from the VFS may_create() version to
    btrfs_may_create().
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    5474bf40
ioctl.c 122 KB