From 9d7cf052cd6d24448402e219eb3edf32a8516f4b Mon Sep 17 00:00:00 2001 From: jh Date: Thu, 26 Nov 2009 19:11:44 +0000 Subject: 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(-) (limited to 'lib/libc') diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index 392bda9..1c547a1 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 -- cgit v1.1