lkml.org 
[lkml]   [1998]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe-read partition table credentials checking
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/
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);
\
 
 \ /
  Last update: 2005-03-22 13:42    [W:0.041 / U:0.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site