Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 2010 20:45:06 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r205424 - head/lib/libc/gen
Message-ID:  <201003212045.o2LKj636011112@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Sun Mar 21 20:45:06 2010
New Revision: 205424
URL: http://svn.freebsd.org/changeset/base/205424

Log:
  Let opendir() use O_DIRECTORY.
  
  I am not removing the fstat() calls here, since we cannot yet assume
  people will always run kernels that respect O_DIRECTORY.

Modified:
  head/lib/libc/gen/opendir.c

Modified: head/lib/libc/gen/opendir.c
==============================================================================
--- head/lib/libc/gen/opendir.c	Sun Mar 21 20:43:23 2010	(r205423)
+++ head/lib/libc/gen/opendir.c	Sun Mar 21 20:45:06 2010	(r205424)
@@ -86,7 +86,7 @@ __opendir2(const char *name, int flags)
 		errno = ENOTDIR;
 		return (NULL);
 	}
-	if ((fd = _open(name, O_RDONLY | O_NONBLOCK)) == -1)
+	if ((fd = _open(name, O_RDONLY | O_NONBLOCK | O_DIRECTORY)) == -1)
 		return (NULL);
 
 	return __opendir_common(fd, name, flags);
@@ -200,7 +200,7 @@ __opendir_common(int fd, const char *nam
 		 */
 		if (flags & DTF_REWIND) {
 			(void)_close(fd);
-			if ((fd = _open(name, O_RDONLY)) == -1) {
+			if ((fd = _open(name, O_RDONLY | O_DIRECTORY)) == -1) {
 				saved_errno = errno;
 				free(buf);
 				free(dirp);



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