From: Ulrich Drepper Date: Mon, 17 Dec 2001 23:10:14 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc-2-3~1275 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46089c83d119050998387d7a8fb896514c92618b;p=platform%2Fupstream%2Fglibc.git Update. 2001-12-17 Ulrich Drepper * io/ftw.c (ftw_dir): Handle inaccessibility of toplevel dir different than implemented in last patch. * io/bug-ftw3.c: Adjust test for changed handling of inaccessibility of toplevel dir. --- diff --git a/ChangeLog b/ChangeLog index 1153622..52cf655 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-12-17 Ulrich Drepper + + * io/ftw.c (ftw_dir): Handle inaccessibility of toplevel dir + different than implemented in last patch. + * io/bug-ftw3.c: Adjust test for changed handling of + inaccessibility of toplevel dir. + 2001-12-16 Roland McGrath * nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal. diff --git a/io/bug-ftw3.c b/io/bug-ftw3.c index 98bb563..e3f24d6 100644 --- a/io/bug-ftw3.c +++ b/io/bug-ftw3.c @@ -4,10 +4,13 @@ #include #include +static int cb_called; + static int cb (const char *fname, const struct stat *st, int flag) { printf ("%s %d\n", fname, flag); + cb_called = 1; return 0; } @@ -15,7 +18,9 @@ int main (void) { char tmp[] = "/tmp/ftwXXXXXX"; + char tmp2[] = "/tmp/ftwXXXXXX/ftwXXXXXX"; char *dname; + char *dname2; int r; int e; @@ -26,13 +31,23 @@ main (void) exit (1); } - if (chmod (dname, S_IWUSR|S_IXUSR|S_IWGRP|S_IXGRP|S_IWOTH|S_IXOTH) != 0) + memcpy (tmp2, tmp, strlen (tmp)); + dname2 = mkdtemp (tmp2); + if (dname2 == NULL) + { + printf ("mkdtemp: %m\n"); + rmdir (dname); + exit (1); + } + + if (chmod (dname, S_IWUSR|S_IWGRP|S_IWOTH) != 0) { printf ("chmod: %m\n"); + rmdir (dname); exit (1); } - r = ftw (dname, cb, 10); + r = ftw (dname2, cb, 10); e = errno; printf ("r = %d", r); if (r != 0) @@ -40,7 +55,8 @@ main (void) puts (""); chmod (dname, S_IRWXU|S_IRWXG|S_IRWXO); + rmdir (dname2); rmdir (dname); - return r != -1 && e == EACCES; + return (r != -1 && e == EACCES) || cb_called; }