svn commit: r248650 - stable/9/lib/libc/gen

Jilles Tjoelker jilles at FreeBSD.org
Sat Mar 23 15:50:35 UTC 2013


Author: jilles
Date: Sat Mar 23 15:50:34 2013
New Revision: 248650
URL: http://svnweb.freebsd.org/changeset/base/248650

Log:
  MFC r246641: fts: Use O_DIRECTORY when opening name that might be changed by
  attacker.
  
  There are uncommon cases where fts_safe_changedir() may be called with a
  non-NULL name that is not "..". Do not block or worse if an attacker put (a
  symlink to) a fifo or device where a directory used to be.

Modified:
  stable/9/lib/libc/gen/fts.c
Directory Properties:
  stable/9/lib/libc/   (props changed)

Modified: stable/9/lib/libc/gen/fts.c
==============================================================================
--- stable/9/lib/libc/gen/fts.c	Sat Mar 23 15:11:53 2013	(r248649)
+++ stable/9/lib/libc/gen/fts.c	Sat Mar 23 15:50:34 2013	(r248650)
@@ -1147,7 +1147,8 @@ fts_safe_changedir(sp, p, fd, path)
 	newfd = fd;
 	if (ISSET(FTS_NOCHDIR))
 		return (0);
-	if (fd < 0 && (newfd = _open(path, O_RDONLY | O_CLOEXEC, 0)) < 0)
+	if (fd < 0 && (newfd = _open(path, O_RDONLY | O_DIRECTORY |
+	    O_CLOEXEC, 0)) < 0)
 		return (-1);
 	if (_fstat(newfd, &sb)) {
 		ret = -1;


More information about the svn-src-all mailing list