summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1997-10-22 07:28:51 +0000
committerjoerg <joerg@FreeBSD.org>1997-10-22 07:28:51 +0000
commitb631d52e4d202d2b6393d4e5627eb1a51c33c37d (patch)
tree507795824f260fc24b3a90d01fab00c3e800ec30 /sys/kern/vfs_syscalls.c
parent90755c07f9f1703e99d77beeec791b48791f538d (diff)
downloadFreeBSD-src-b631d52e4d202d2b6393d4e5627eb1a51c33c37d.zip
FreeBSD-src-b631d52e4d202d2b6393d4e5627eb1a51c33c37d.tar.gz
Reject attempts to call open() with an illegal combination of O_RDONLY,
O_WRONLY, O_RDWR.
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r--sys/kern/vfs_syscalls.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 4a01b57..057e908 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.75 1997/09/28 06:37:02 phk Exp $
+ * $Id: vfs_syscalls.c,v 1.76 1997/10/12 20:24:27 phk Exp $
*/
/*
@@ -863,11 +863,13 @@ open(p, uap, retval)
struct flock lf;
struct nameidata nd;
+ flags = FFLAGS(SCARG(uap, flags));
+ if ((flags & FREAD + FWRITE) == 0)
+ return (EINVAL);
error = falloc(p, &nfp, &indx);
if (error)
return (error);
fp = nfp;
- flags = FFLAGS(SCARG(uap, flags));
cmode = ((SCARG(uap, mode) &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT;
NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p);
p->p_dupfd = -indx - 1; /* XXX check for fdopen */
OpenPOWER on IntegriCloud