2003-02-08  Ulrich Drepper  <drepper@redhat.com>

	* io/ftwtest.c: Get current working directory before and after the
	nftw call and make sure they match.

2003-02-08  Jim Meyering  <jim@meyering.net>

	* ftw.c (ftw_startup): When using FTW_CHDIR, always remember
	the current directory, not just when DIR contains a slash.
	Reported by Manoj Srivastava.
This commit is contained in:
Ulrich Drepper 2003-02-08 18:29:49 +00:00
parent ae9ecd08db
commit 34c86f4254
3 changed files with 26 additions and 2 deletions

View File

@ -1,3 +1,14 @@
2003-02-08 Ulrich Drepper <drepper@redhat.com>
* io/ftwtest.c: Get current working directory before and after the
nftw call and make sure they match.
2003-02-08 Jim Meyering <jim@meyering.net>
* ftw.c (ftw_startup): When using FTW_CHDIR, always remember
the current directory, not just when DIR contains a slash.
Reported by Manoj Srivastava.
2003-02-07 Jim Meyering <jim@meyering.net>
* io/ftw.c: Add autoconf-recommended block of alloca-related code.

View File

@ -629,13 +629,13 @@ ftw_startup (const char *dir, int is_nftw, void *func, int descriptors,
data.known_objects = NULL;
/* Now go to the directory containing the initial file/directory. */
if ((flags & FTW_CHDIR) && data.ftw.base > 0)
if (flags & FTW_CHDIR)
{
/* GNU extension ahead. */
cwd = __getcwd (NULL, 0);
if (cwd == NULL)
result = -1;
else
else if (data.ftw.base > 0)
{
/* Change to the directory the file is in. In data.dirbuf
we have a writable copy of the file name. Just NUL

View File

@ -70,9 +70,22 @@ main (int argc, char *argv[])
if (do_phys)
flag |= FTW_PHYS;
char *cw1 = getcwd (NULL, 0);
r = nftw (optind < argc ? argv[optind] : ".", cb, do_exit ? 1 : 3, flag);
if (r < 0)
perror ("nftw");
char *cw2 = getcwd (NULL, 0);
if (strcmp (cw1, cw2) != 0)
{
printf ("current working directory before and after nftw call differ:\n"
"before: %s\n"
"after: %s\n", cw1, cw2);
exit (1);
}
if (do_exit)
{
puts (r == 26 ? "succeeded" : "failed");