summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>1999-08-02 21:34:46 +0000
committerimp <imp@FreeBSD.org>1999-08-02 21:34:46 +0000
commitb9c832cd1ff051f49e1ec48b7a38689a9b6d9fe4 (patch)
tree68e5418dbc54ac451b4d952d4c1d1914764d4d41 /sys/kern/vfs_syscalls.c
parent257891ab9f791bf4ad243b183a30572083606160 (diff)
downloadFreeBSD-src-b9c832cd1ff051f49e1ec48b7a38689a9b6d9fe4.zip
FreeBSD-src-b9c832cd1ff051f49e1ec48b7a38689a9b6d9fe4.tar.gz
Only allow root to set file flags on devices.
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r--sys/kern/vfs_syscalls.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index e4333a6..a1674d8 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.124 1999/07/26 06:25:18 alc Exp $
+ * $Id: vfs_syscalls.c,v 1.125 1999/07/29 17:02:56 green Exp $
*/
/* For 4.3 integer FS ID compatibility */
@@ -1892,6 +1892,13 @@ setfflags(p, vp, flags)
int error;
struct vattr vattr;
+ if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)))
+ return error;
+ /*
+ * Don't allow setting of flags on devices for nonroot users
+ */
+ if ((vattr.va_type == VCHR || vattr.va_type == VBLK) && suser(p))
+ return 0;
VOP_LEASE(vp, p, p->p_ucred, LEASE_WRITE);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
VATTR_NULL(&vattr);
OpenPOWER on IntegriCloud