Re-read partition table credentials checking

Alexander Kjeldaas (astor@guardian.no)
Fri, 24 Apr 1998 01:29:13 +0200


--ew6BAiZeqk4r7MaW
Content-Type: text/plain; charset=us-ascii

The following patch adds credentials checking to the BLKRRPART ioctl
on other block devices besides the ide driver.

astor

-- 
 Alexander Kjeldaas, Guardian Networks AS, Trondheim, Norway
 http://www.guardian.no/

--ew6BAiZeqk4r7MaW Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="dill.diff"

diff -urN /tmp/l97/drivers/ap1000/ddv.c drivers/ap1000/ddv.c --- /tmp/l97/drivers/ap1000/ddv.c Sat Feb 21 03:28:22 1998 +++ drivers/ap1000/ddv.c Fri Apr 24 01:19:31 1998 @@ -856,6 +856,8 @@ case BLKRRPART: printk("\tBLKRRPART\n"); + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return ddv_revalidate(inode->i_rdev,&ddv_gendisk); case BLKGETSIZE: /* Return device size */ diff -urN /tmp/l97/drivers/block/acsi.c drivers/block/acsi.c --- /tmp/l97/drivers/block/acsi.c Thu Apr 23 17:39:55 1998 +++ drivers/block/acsi.c Fri Apr 24 01:20:51 1998 @@ -1156,6 +1156,8 @@ return 0; case BLKRRPART: /* Re-read partition tables */ + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return revalidate_acsidisk(inode->i_rdev, 1); RO_IOCTLS(inode->i_rdev,arg); default: diff -urN /tmp/l97/drivers/block/hd.c drivers/block/hd.c --- /tmp/l97/drivers/block/hd.c Thu Apr 23 17:39:55 1998 +++ drivers/block/hd.c Fri Apr 24 01:22:37 1998 @@ -622,6 +622,8 @@ return 0; case BLKRRPART: /* Re-read partition tables */ + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return revalidate_hddisk(inode->i_rdev, 1); RO_IOCTLS(inode->i_rdev,arg); diff -urN /tmp/l97/drivers/block/paride/pd.c drivers/block/paride/pd.c --- /tmp/l97/drivers/block/paride/pd.c Thu Apr 23 17:39:55 1998 +++ drivers/block/paride/pd.c Fri Apr 24 01:18:28 1998 @@ -490,6 +490,8 @@ invalidate_buffers(inode->i_rdev); return 0; case BLKRRPART: + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return pd_revalidate(inode->i_rdev); RO_IOCTLS(inode->i_rdev,arg); default: diff -urN /tmp/l97/drivers/block/ps2esdi.c drivers/block/ps2esdi.c --- /tmp/l97/drivers/block/ps2esdi.c Thu Apr 23 17:39:55 1998 +++ drivers/block/ps2esdi.c Fri Apr 24 01:18:07 1998 @@ -1118,6 +1118,8 @@ return 0; case BLKRRPART: + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return (ps2esdi_reread_partitions(inode->i_rdev)); RO_IOCTLS(inode->i_rdev, arg); } diff -urN /tmp/l97/drivers/block/xd.c drivers/block/xd.c --- /tmp/l97/drivers/block/xd.c Thu Apr 23 17:39:55 1998 +++ drivers/block/xd.c Fri Apr 24 01:20:43 1998 @@ -366,6 +366,8 @@ case HDIO_GET_MULTCOUNT: return put_user(xd_maxsectors, (long *) arg); case BLKRRPART: + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return xd_reread_partitions(inode->i_rdev); RO_IOCTLS(inode->i_rdev,arg); default: diff -urN /tmp/l97/drivers/scsi/sd_ioctl.c drivers/scsi/sd_ioctl.c --- /tmp/l97/drivers/scsi/sd_ioctl.c Thu Apr 23 17:39:56 1998 +++ drivers/scsi/sd_ioctl.c Fri Apr 24 01:18:54 1998 @@ -103,6 +103,8 @@ return 0; case BLKRRPART: /* Re-read partition tables */ + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return revalidate_scsidisk(dev, 1); RO_IOCTLS(dev, arg);

--ew6BAiZeqk4r7MaW--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu