From 909e26015391286b8d15d9febbca57166b0d0ed0 Mon Sep 17 00:00:00 2001 From: Jaakko Heinonen Date: Thu, 26 Nov 2009 19:11:44 +0000 Subject: [PATCH] Reset path name back to original correctly in fts_build() when FTS_NOCHDIR option is used. fts_build() could strip a trailing slash from path name in post-order visit if a path pointing to an empty directory was given for fts_open(). PR: bin/133907, kern/134513 Reviewed by: das Approved by: trasz (mentor) MFC after: 1 month --- lib/libc/gen/fts.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index 392bda94138..1c547a10722 100644 --- a/lib/libc/gen/fts.c +++ b/lib/libc/gen/fts.c @@ -842,11 +842,8 @@ mem1: saved_errno = errno; * If not changing directories, reset the path back to original * state. */ - if (ISSET(FTS_NOCHDIR)) { - if (len == sp->fts_pathlen || nitems == 0) - --cp; - *cp = '\0'; - } + if (ISSET(FTS_NOCHDIR)) + sp->fts_path[cur->fts_pathlen] = '\0'; /* * If descended after called from fts_children or after called from