diff options
Diffstat (limited to 'sys/kern/vfs_vnops.c')
-rw-r--r-- | sys/kern/vfs_vnops.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 001dca5bbe5..03ade69df5f 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_vnops.c,v 1.67 2011/07/06 09:14:26 matthew Exp $ */ +/* $OpenBSD: vfs_vnops.c,v 1.68 2011/07/09 01:28:48 matthew Exp $ */ /* $NetBSD: vfs_vnops.c,v 1.20 1996/02/04 02:18:41 christos Exp $ */ /* @@ -135,6 +135,10 @@ vn_open(struct nameidata *ndp, int fmode, int cmode) error = ELOOP; goto bad; } + if ((fmode & O_DIRECTORY) && vp->v_type != VDIR) { + error = ENOTDIR; + goto bad; + } if ((fmode & O_CREAT) == 0) { if (fmode & FREAD) { if ((error = VOP_ACCESS(vp, VREAD, cred, p)) != 0) |