Author: kib
Date: Tue Sep 24 06:18:48 2019
New Revision: 352643
URL: https://svnweb.freebsd.org/changeset/base/352643

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

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

Modified: stable/12/lib/libc/sys/open.2
==============================================================================
--- stable/12/lib/libc/sys/open.2       Tue Sep 24 02:41:39 2019        
(r352642)
+++ stable/12/lib/libc/sys/open.2       Tue Sep 24 06:18:48 2019        
(r352643)
@@ -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/12/sys/kern/vfs_vnops.c
==============================================================================
--- stable/12/sys/kern/vfs_vnops.c      Tue Sep 24 02:41:39 2019        
(r352642)
+++ stable/12/sys/kern/vfs_vnops.c      Tue Sep 24 06:18:48 2019        
(r352643)
@@ -261,6 +261,10 @@ restart:
                                error = EEXIST;
                                goto bad;
                        }
+                       if (vp->v_type == VDIR) {
+                               error = EISDIR;
+                               goto bad;
+                       }
                        fmode &= ~O_CREAT;
                }
        } else {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to