diff options
Diffstat (limited to 'io/bug-ftw3.c')
-rw-r--r-- | io/bug-ftw3.c | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/io/bug-ftw3.c b/io/bug-ftw3.c deleted file mode 100644 index 19740f49f3..0000000000 --- a/io/bug-ftw3.c +++ /dev/null @@ -1,69 +0,0 @@ -#include <errno.h> -#include <ftw.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -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; -} - -int -main (void) -{ - char tmp[] = "/tmp/ftwXXXXXX"; - char tmp2[] = "/tmp/ftwXXXXXX/ftwXXXXXX"; - char *dname; - char *dname2; - int r; - int e; - - if (getuid () == 0) - { - puts ("this test needs to be run by ordinary user"); - exit (0); - } - - dname = mkdtemp (tmp); - if (dname == NULL) - { - printf ("mkdtemp: %m\n"); - exit (1); - } - - 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 (dname2, cb, 10); - e = errno; - printf ("r = %d", r); - if (r != 0) - printf (", errno = %d", errno); - puts (""); - - chmod (dname, S_IRWXU|S_IRWXG|S_IRWXO); - rmdir (dname2); - rmdir (dname); - - return (r != -1 && e == EACCES) || cb_called; -} |