mirror of
https://sourceware.org/git/glibc.git
synced 2025-05-19 05:53:43 +03:00
Update.
2003-01-12 Ulrich Drepper <drepper@redhat.com> * io/ftw.c (process_entry): Use relative path when using chdir() to change direcoty after call to ftw_dir. * io/ftwtest-sh: Add test for relative path argument to nftw() with FTW_CHDIR option.
This commit is contained in:
parent
b398ae3c6d
commit
a5ce5fcf38
@ -1,3 +1,10 @@
|
|||||||
|
2003-01-12 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* io/ftw.c (process_entry): Use relative path when using chdir()
|
||||||
|
to change direcoty after call to ftw_dir.
|
||||||
|
* io/ftwtest-sh: Add test for relative path argument to nftw()
|
||||||
|
with FTW_CHDIR option.
|
||||||
|
|
||||||
2002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
2002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_VFORK_SYSCALL):
|
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_VFORK_SYSCALL):
|
||||||
|
13
io/ftw.c
13
io/ftw.c
@ -212,7 +212,7 @@ open_dir_stream (struct ftw_data *data, struct dir_data *dirp)
|
|||||||
{
|
{
|
||||||
char *newp;
|
char *newp;
|
||||||
bufsize += MAX (1024, 2 * this_len);
|
bufsize += MAX (1024, 2 * this_len);
|
||||||
newp = realloc (buf, bufsize);
|
newp = (char *) realloc (buf, bufsize);
|
||||||
if (newp == NULL)
|
if (newp == NULL)
|
||||||
{
|
{
|
||||||
/* No more memory. */
|
/* No more memory. */
|
||||||
@ -357,15 +357,8 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
|
|||||||
result = -1;
|
result = -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
if (__chdir ("..") < 0)
|
||||||
/* Please note that we overwrite a slash. */
|
result = 1;
|
||||||
data->dirbuf[data->ftw.base - 1] = '\0';
|
|
||||||
|
|
||||||
if (__chdir (data->dirbuf) < 0)
|
|
||||||
result = -1;
|
|
||||||
|
|
||||||
data->dirbuf[data->ftw.base - 1] = '/';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,6 +138,28 @@ base = "$tmp/ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F, cwd
|
|||||||
EOF
|
EOF
|
||||||
rm $testout
|
rm $testout
|
||||||
|
|
||||||
|
curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
|
||||||
|
cd "$tmp"
|
||||||
|
LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d |
|
||||||
|
sort > $testout
|
||||||
|
cd "$curwd"
|
||||||
|
|
||||||
|
cat <<EOF | diff -u $testout - || exit 1
|
||||||
|
base = "", file = "ftwtest.d", flag = FTW_D, cwd = $tmpreal, level = 0
|
||||||
|
base = "ftwtest.d/", file = "bar", flag = FTW_D, cwd = $tmpreal/ftwtest.d, level = 1
|
||||||
|
base = "ftwtest.d/", file = "baz", flag = FTW_F, cwd = $tmpreal/ftwtest.d, level = 1
|
||||||
|
base = "ftwtest.d/", file = "foo", flag = FTW_D, cwd = $tmpreal/ftwtest.d, level = 1
|
||||||
|
base = "ftwtest.d/bar/", file = "xo", flag = FTW_F, cwd = $tmpreal/ftwtest.d/bar, level = 2
|
||||||
|
base = "ftwtest.d/foo/", file = "lvl1", flag = FTW_D, cwd = $tmpreal/ftwtest.d/foo, level = 2
|
||||||
|
base = "ftwtest.d/foo/lvl1/", file = "file@1", flag = FTW_F, cwd = $tmpreal/ftwtest.d/foo/lvl1, level = 3
|
||||||
|
base = "ftwtest.d/foo/lvl1/", file = "link@1", flag = FTW_SLN, cwd = $tmpreal/ftwtest.d/foo/lvl1, level = 3
|
||||||
|
base = "ftwtest.d/foo/lvl1/", file = "lvl2", flag = FTW_D, cwd = $tmpreal/ftwtest.d/foo/lvl1, level = 3
|
||||||
|
base = "ftwtest.d/foo/lvl1/lvl2/", file = "file@2", flag = FTW_F, cwd = $tmpreal/ftwtest.d/foo/lvl1/lvl2, level = 4
|
||||||
|
base = "ftwtest.d/foo/lvl1/lvl2/", file = "lvl3", flag = FTW_D, cwd = $tmpreal/ftwtest.d/foo/lvl1/lvl2, level = 4
|
||||||
|
base = "ftwtest.d/foo/lvl1/lvl2/lvl3/", file = "file@3", flag = FTW_F, cwd = $tmpreal/ftwtest.d/foo/lvl1/lvl2/lvl3, level = 5
|
||||||
|
EOF
|
||||||
|
rm $testout
|
||||||
|
|
||||||
LD_LIBRARY_PATH=$objpfx $ldso $testprogram --early-exit $tmpdir |
|
LD_LIBRARY_PATH=$objpfx $ldso $testprogram --early-exit $tmpdir |
|
||||||
sort > $testout
|
sort > $testout
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user