Patch "btrfs: ensure that file descriptor used with subvol ioctls is a dir" has been added to the 4.7-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
btrfs: ensure that file descriptor used with subvol ioctls is a dir
to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
btrfs-ensure-that-file-descriptor-used-with-subvol-ioctls-is-a-dir.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
325c50e3cebb9208009083e841550f98a863bfa0Mon Sep 17 00:00:00 2001
From: Jeff Mahoney <[email protected]>
Date: Wed, 21 Sep 2016 08:31:29 -0400
Subject: btrfs: ensure that file descriptor used with subvol ioctls is a dir
From: Jeff Mahoney <[email protected]>
commit 325c50e3cebb9208009083e841550f98a863bfa0 upstream.
If the subvol/snapshot create/destroy ioctls are passed a regular file with execute permissions set, we'll eventually Oops while trying to do inode->i_op->lookup via lookup_one_len.
This patch ensures that the file descriptor refers to a directory.
--- fs/btrfs/ioctl.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
fs/btrfs/ioctl.c +12 -0
@@ -1634,6 +1634,9 @@ static noinline int btrfs_ioctl_snap_creint namelen;int ret =0 ; +if (!S_ISDIR (file_inode (file)->i_mode)) +return -ENOTDIR ; + ret =mnt_want_write_file (file);if (ret) goto out;
@@ -1691,6 +1694,9 @@ static noinline int btrfs_ioctl_snap_crestruct btrfs_ioctl_vol_args *vol_args;int ret; +if (!S_ISDIR (file_inode (file)->i_mode)) +return -ENOTDIR ; + vol_args =memdup_user (arg,sizeof (*vol_args));if (IS_ERR (vol_args))return PTR_ERR (vol_args);
@@ -1714,6 +1720,9 @@ static noinline int btrfs_ioctl_snap_crebool readonly = false;struct btrfs_qgroup_inherit *inherit =NULL ; +if (!S_ISDIR (file_inode (file)->i_mode)) +return -ENOTDIR ; + vol_args =memdup_user (arg,sizeof (*vol_args));if (IS_ERR (vol_args))return PTR_ERR (vol_args);
@@ -2358,6 +2367,9 @@ static noinline int btrfs_ioctl_snap_desint ret;int err =0 ; +if (!S_ISDIR (dir->i_mode)) +return -ENOTDIR ; + vol_args =memdup_user (arg,sizeof (*vol_args));if (IS_ERR (vol_args))return PTR_ERR (vol_args);
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/btrfs-ensure-that-file-descriptor-used-with-subvol-ioctls-is-a-dir.patch queue-4.7/reiserfs-fix-new_insert_key-may-be-used-uninitialized.patch