Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Sep 2019 06:21:48 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r352645 - in stable/11: lib/libc/sys sys/kern
Message-ID:  <201909240621.x8O6LmLC016777@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Tue Sep 24 06:21:48 2019
New Revision: 352645
URL: https://svnweb.freebsd.org/changeset/base/352645

Log:
  MFC r352455:
  Return EISDIR when directory is opened with O_CREAT without O_DIRECTORY.
  
  PR:	240452

Modified:
  stable/11/lib/libc/sys/open.2
  stable/11/sys/kern/vfs_vnops.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/sys/open.2
==============================================================================
--- stable/11/lib/libc/sys/open.2	Tue Sep 24 06:19:41 2019	(r352644)
+++ stable/11/lib/libc/sys/open.2	Tue Sep 24 06:21:48 2019	(r352645)
@@ -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
@@ -359,6 +359,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: stable/11/sys/kern/vfs_vnops.c
==============================================================================
--- stable/11/sys/kern/vfs_vnops.c	Tue Sep 24 06:19:41 2019	(r352644)
+++ stable/11/sys/kern/vfs_vnops.c	Tue Sep 24 06:21:48 2019	(r352645)
@@ -262,6 +262,10 @@ restart:
 				error = EEXIST;
 				goto bad;
 			}
+			if (vp->v_type == VDIR) {
+				error = EISDIR;
+				goto bad;
+			}
 			fmode &= ~O_CREAT;
 		}
 	} else {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909240621.x8O6LmLC016777>