xfs: add capability check to free eofblocks ioctl
PATCH v8 6/7 xfs: add capability check to free eofblocks ioctl
Check for CAP_SYS_ADMIN since the caller can truncate preallocated blocks from files they do not own nor have write access to. A more fine grained access check was considered: require the caller to specify their own uid/gid and to use inode_permission to check for write, but this would not catch the case of an inode not reachable via path traversal from the callers mount namespace.
Add check for read-only filesystem to free eofblocks ioctl.
--- fs/xfs/xfs_ioctl.c | 6 ++++++ 1 file changed, 6 insertions(+)
fs/xfs/xfs_ioctl.c +6 -0
@@ -1620,6 +1620,12 @@ xfs_file_ioctl(struct xfs_fs_eofblocks eofb;struct xfs_eofblocks keofb; +if (!capable (CAP_SYS_ADMIN )) +return -EPERM ; + +if (mp->m_flags &XFS_MOUNT_RDONLY ) +return -XFS_ERROR (EROFS ); +if (copy_from_user (&eofb, arg,sizeof (eofb)))return -XFS_ERROR (EFAULT );
Signature · 6 lines
1.8.1.4 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 11 lines · Dwight Engen
Check for
CAP_SYS_ADMINsince the caller can truncate preallocated blocks from files they do not own nor have write access to. A more fine grained access check was considered: require the caller to specify their own uid/gid and to useinode_permissionto check for write, but this would not catch the case of an inode not reachable via path traversal from the callers mount namespace.Add check for read-only filesystem to free eofblocks ioctl.
Signed-off-by Dwight Engen <[email protected]>---
Thanks Dwight!
Quoted 11 lines
fs/xfs/xfs_ioctl.c | 6 ++++++ 1 file changed, 6 insertions(+)fs/xfs/xfs_ioctl.c +0
-0@@ -1620,6 +1620,12 @@ xfs_file_ioctl(struct xfs_fs_eofblocks eofb;struct xfs_eofblocks keofb;
fs/xfs/xfs_ioctl.c xfs_file_ioctl( · line 1631
Quoted 10 lines
fs/xfs/xfs_ioctl.c +6
-0+if (!capable (CAP_SYS_ADMIN )) +return -EPERM ; + +if (mp->m_flags &XFS_MOUNT_RDONLY ) +return -XFS_ERROR (EROFS ); +if (copy_from_user (&eofb, arg,sizeof (eofb)))return -XFS_ERROR (EFAULT );
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 10 lines · Dwight Engen
Check for
CAP_SYS_ADMINsince the caller can truncate preallocated blocks from files they do not own nor have write access to. A more fine grained access check was considered: require the caller to specify their own uid/gid and to useinode_permissionto check for write, but this would not catch the case of an inode not reachable via path traversal from the callers mount namespace.Add check for read-only filesystem to free eofblocks ioctl.
Signed-off-by Dwight Engen <[email protected]>
looks good.
Signature · 7 lines
Dave Chinner [email protected] _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 11 lines · Dwight Engen
Check for
CAP_SYS_ADMINsince the caller can truncate preallocated blocks from files they do not own nor have write access to. A more fine grained access check was considered: require the caller to specify their own uid/gid and to useinode_permissionto check for write, but this would not catch the case of an inode not reachable via path traversal from the callers mount namespace.Add check for read-only filesystem to free eofblocks ioctl.
Signed-off-by Dwight Engen <[email protected]>---
looks good to me, thanks
Quoted 11 lines
fs/xfs/xfs_ioctl.c | 6 ++++++ 1 file changed, 6 insertions(+)fs/xfs/xfs_ioctl.c +0
-0@@ -1620,6 +1620,12 @@ xfs_file_ioctl(struct xfs_fs_eofblocks eofb;struct xfs_eofblocks keofb;
fs/xfs/xfs_ioctl.c xfs_file_ioctl( · line 1631
Quoted 10 lines
fs/xfs/xfs_ioctl.c +6
-0+if (!capable (CAP_SYS_ADMIN )) +return -EPERM ; + +if (mp->m_flags &XFS_MOUNT_RDONLY ) +return -XFS_ERROR (EROFS ); +if (copy_from_user (&eofb, arg,sizeof (eofb)))return -XFS_ERROR (EFAULT );
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs