svn commit: r352455 - in head: lib/libc/sys sys/kern
Konstantin Belousov
kib at FreeBSD.org
Tue Sep 17 18:32:20 UTC 2019
Author: kib
Date: Tue Sep 17 18:32:18 2019
New Revision: 352455
URL: https://svnweb.freebsd.org/changeset/base/352455
Log:
Return EISDIR when directory is opened with O_CREAT without O_DIRECTORY.
Reviewed by: bcr (man page), emaste (previous version)
PR: 240452
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
DIfferential revision: https://reviews.freebsd.org/D21634
Modified:
head/lib/libc/sys/open.2
head/sys/kern/vfs_vnops.c
Modified: head/lib/libc/sys/open.2
==============================================================================
--- head/lib/libc/sys/open.2 Tue Sep 17 18:05:33 2019 (r352454)
+++ head/lib/libc/sys/open.2 Tue Sep 17 18:32:18 2019 (r352455)
@@ -28,7 +28,7 @@
.\" @(#)open.2 8.2 (Berkeley) 11/16/93
.\" $FreeBSD$
.\"
-.Dd June 14, 2019
+.Dd September 17, 2019
.Dt OPEN 2
.Os
.Sh NAME
@@ -419,6 +419,11 @@ Too many symbolic links were encountered in translatin
.It Bq Er EISDIR
The named file is a directory, and the arguments specify
it is to be modified.
+.It Bq Er EISDIR
+The named file is a directory, and the flags specified
+.Dv O_CREAT
+without
+.Dv O_DIRECTORY .
.It Bq Er EROFS
The named file resides on a read-only file system,
and the file is to be modified.
Modified: head/sys/kern/vfs_vnops.c
==============================================================================
--- head/sys/kern/vfs_vnops.c Tue Sep 17 18:05:33 2019 (r352454)
+++ head/sys/kern/vfs_vnops.c Tue Sep 17 18:32:18 2019 (r352455)
@@ -264,6 +264,10 @@ restart:
error = EEXIST;
goto bad;
}
+ if (vp->v_type == VDIR) {
+ error = EISDIR;
+ goto bad;
+ }
fmode &= ~O_CREAT;
}
} else {
More information about the svn-src-all
mailing list