public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/29228] New: ftw() does not find all directories
@ 2022-06-06  8:50 galaxyking0419 at gmail dot com
  2022-06-06 17:58 ` [Bug libc/29228] " fweimer at redhat dot com
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: galaxyking0419 at gmail dot com @ 2022-06-06  8:50 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

            Bug ID: 29228
           Summary: ftw() does not find all directories
           Product: glibc
           Version: 2.35
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: galaxyking0419 at gmail dot com
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

The ftw() function will miss some directories on my system (.e.g
/usr/local/man) unless use the directory as the starting directory.

Consider the following snippet:
#include <errno.h>
#include <stdio.h>
#include <string.h>

#include <ftw.h>

static inline int callback(const char *path, const struct stat *stat, int flag)
{
    if (strcmp(path, "/usr/local/man") == 0)
        printf("Found %s\n", path);
        return 0;
}

int main(int argc, const char *argv[])
{
    if (ftw(argv[1], callback, 4096) != 0) {
        printf("ERROR: Failed to traverse the directory tree! (%s)\n",
strerror(errno));
        return 3;
    }
    return 0;
}

Command Output:
[root@NoteBook xxx]# ./a.out /usr
[root@NoteBook xxx]# ./a.out /usr/local
[root@NoteBook xxx]# ./a.out /usr/local/man
Found /usr/local/man

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
@ 2022-06-06 17:58 ` fweimer at redhat dot com
  2022-06-07  2:26 ` galaxyking0419 at gmail dot com
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: fweimer at redhat dot com @ 2022-06-06 17:58 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-06-06
                 CC|                            |fweimer at redhat dot com
             Status|UNCONFIRMED                 |WAITING
     Ever confirmed|0                           |1

--- Comment #1 from Florian Weimer <fweimer at redhat dot com> ---
Would you please show us the output of:

ls -lid /usr/local/man /usr/local/man/

? Thanks.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
  2022-06-06 17:58 ` [Bug libc/29228] " fweimer at redhat dot com
@ 2022-06-07  2:26 ` galaxyking0419 at gmail dot com
  2022-06-07  6:10 ` fweimer at redhat dot com
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: galaxyking0419 at gmail dot com @ 2022-06-07  2:26 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

--- Comment #2 from William Tang <galaxyking0419 at gmail dot com> ---
[root@NoteBook xxx]# ls -lid /usr/local/man /usr/local/man/
269461327 drwxr-xr-x 2 root root 6 Jun  6 22:25 /usr/local/man
269461327 drwxr-xr-x 2 root root 6 Jun  6 22:25 /usr/local/man/

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
  2022-06-06 17:58 ` [Bug libc/29228] " fweimer at redhat dot com
  2022-06-07  2:26 ` galaxyking0419 at gmail dot com
@ 2022-06-07  6:10 ` fweimer at redhat dot com
  2022-06-07  6:11 ` fweimer at redhat dot com
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: fweimer at redhat dot com @ 2022-06-07  6:10 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #3 from Florian Weimer <fweimer at redhat dot com> ---
Hmm. This does not tell me what is going on. No symbolic link, no inode number
zero.

Maybe you could run the example program under strace -v and see if d_name="man"
appears in the getdents output? Thanks.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
                   ` (2 preceding siblings ...)
  2022-06-07  6:10 ` fweimer at redhat dot com
@ 2022-06-07  6:11 ` fweimer at redhat dot com
  2022-06-07  6:56 ` galaxyking0419 at gmail dot com
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: fweimer at redhat dot com @ 2022-06-07  6:11 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |WAITING

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
                   ` (3 preceding siblings ...)
  2022-06-07  6:11 ` fweimer at redhat dot com
@ 2022-06-07  6:56 ` galaxyking0419 at gmail dot com
  2022-06-07  7:28 ` fweimer at redhat dot com
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: galaxyking0419 at gmail dot com @ 2022-06-07  6:56 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

--- Comment #4 from William Tang <galaxyking0419 at gmail dot com> ---
d_name="man" did show up in the strace output, and it showed twice as there are
two directories has "man" suffix: /usr/local/man and /usr/local/share/man.

Strace Output:
execve("./ftw-bug", ["./ftw-bug", "/usr/local"], ["SHELL=/bin/bash",
"SESSION_MANAGER=local/NoteBook:@"..., "COLORTERM=truecolor",
"XDG_MENU_PREFIX=gnome-", "TERM_PROGRAM_VERSION=1.67.2",
"APPLICATION_INSIGHTS_NO_DIAGNOST"..., "SSH_AUTH_SOCK=/run/user/1000/key"...,
"XMODIFIERS=@im=ibus", "DESKTOP_SESSION=gnome", "NO_AT_BRIDGE=1",
"PWD=/home/william/Documents/Code"..., "LOGNAME=william",
"XDG_SESSION_DESKTOP=gnome", "XDG_SESSION_TYPE=wayland",
"SYSTEMD_EXEC_PID=817", "XAUTHORITY=/run/user/1000/.mutte"...,
"VSCODE_GIT_ASKPASS_NODE=/usr/lib"..., "GJS_DEBUG_TOPICS=JS ERROR;JS LOG",
"MOTD_SHOWN=pam", "GDM_LANG=en_US.UTF-8", "HOME=/home/william",
"USERNAME=william", "LANG=en_US.UTF-8", "XDG_CURRENT_DESKTOP=GNOME",
"WAYLAND_DISPLAY=wayland-0", "GIT_ASKPASS=/usr/lib/code/extens"...,
"INVOCATION_ID=31a39008366949c087"..., "MANAGERPID=743",
"CHROME_DESKTOP=code-oss.desktop", "GJS_DEBUG_OUTPUT=stderr",
"VSCODE_GIT_ASKPASS_EXTRA_ARGS=", "GNOME_SETUP_DISPLAY=:1",
"XDG_SESSION_CLASS=user", "TERM=xterm-256color", "USER=william",
"VSCODE_GIT_IPC_HANDLE=/run/user/"..., "DISPLAY=:0", "SHLVL=1",
"QT_IM_MODULE=ibus", "SYSTEMD_PAGER=", "XDG_RUNTIME_DIR=/run/user/1000",
"PS1=[\\[\\e[36m\\]\\u\\[\\e[32m\\]@\\h \\"...,
"VSCODE_GIT_ASKPASS_MAIN=/usr/lib"..., "JOURNAL_STREAM=8:28746",
"GDK_BACKEND=x11", "PATH=/usr/local/bin:/usr/bin:/us"..., "GDMSESSION=gnome",
"ORIGINAL_XDG_CURRENT_DESKTOP=GNO"..., "DBUS_SESSION_BUS_ADDRESS=unix:pa"...,
"MAIL=/var/spool/mail/william", "GIO_LAUNCHED_DESKTOP_FILE_PID=16"...,
"GIO_LAUNCHED_DESKTOP_FILE=/usr/s"..., "TERM_PROGRAM=vscode",
"_=/usr/bin/strace", "OLDPWD=/home/william/Documents/C"...]) = 0
brk(NULL)                               = 0x555eca66a000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe9eb1e630) = -1 EINVAL (Invalid
argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=537356209,
st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=192, st_size=97631, st_atime=1654568514 /*
2022-06-07T10:21:54.773060998+0800 */, st_atime_nsec=773060998,
st_mtime=1654568514 /* 2022-06-07T10:21:54.763060998+0800 */,
st_mtime_nsec=763060998, st_ctime=1654568514 /*
2022-06-07T10:21:54.763060998+0800 */, st_ctime_nsec=763060998}, AT_EMPTY_PATH)
= 0
mmap(NULL, 97631, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9b96fc8000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libasan.so.8", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"...,
832) = 832
pread64(3,
"\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\305\310:\365\237\324\317G\16\201@\251/vB\247"...,
36, 800) = 36
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=542695201,
st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=16072, st_size=8226984, st_atime=1654531638 /*
2022-06-07T00:07:18.147568903+0800 */, st_atime_nsec=147568903,
st_mtime=1652584780 /* 2022-05-15T11:19:40+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.207510482+0800 */,
st_ctime_nsec=207510482}, AT_EMPTY_PATH) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fc6000
mmap(NULL, 6996936, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f9b96919000
mmap(0x7f9b9693d000, 954368, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f9b9693d000
mmap(0x7f9b96a26000, 217088, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0x10d000) = 0x7f9b96a26000
mmap(0x7f9b96a5b000, 28672, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x141000) = 0x7f9b96a5b000
mmap(0x7f9b96a62000, 5649352, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9b96a62000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\224\2\0\0\0\0\0"...,
832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"...,
784, 64) = 784
pread64(3, "\4\0\0\0@\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"...,
80, 848) = 80
pread64(3,
"\4\0\0\0\24\0\0\0\3\0\0\0GNU\0`\337\35\363\37\2\247\262=\250>\216\371#5\230"...,
68, 928) = 68
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=542693871,
st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=4104, st_size=2100888, st_atime=1654568469 /*
2022-06-07T10:21:09.107604175+0800 */, st_atime_nsec=107604175,
st_mtime=1654508756 /* 2022-06-06T17:45:56+0800 */, st_mtime_nsec=0,
st_ctime=1654568469 /* 2022-06-07T10:21:09.037604175+0800 */,
st_ctime_nsec=37604175}, AT_EMPTY_PATH) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"...,
784, 64) = 784
mmap(NULL, 2146032, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f9b9670d000
mprotect(0x7f9b96735000, 1904640, PROT_NONE) = 0
mmap(0x7f9b96735000, 1540096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f9b96735000
mmap(0x7f9b968ad000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0x1a0000) = 0x7f9b968ad000
mmap(0x7f9b96906000, 24576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f8000) = 0x7f9b96906000
mmap(0x7f9b9690c000, 52976, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9b9690c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/../lib/glibc-hwcaps/x86-64-v3/libstdc++.so.6",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/glibc-hwcaps/x86-64-v3", 0x7ffe9eb1d810,
0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/glibc-hwcaps/x86-64-v2/libstdc++.so.6",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/glibc-hwcaps/x86-64-v2", 0x7ffe9eb1d810,
0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/tls/haswell/x86_64/libstdc++.so.6",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/tls/haswell/x86_64", 0x7ffe9eb1d810, 0) =
-1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/tls/haswell/libstdc++.so.6",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/tls/haswell", 0x7ffe9eb1d810, 0) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/tls/x86_64/libstdc++.so.6",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/tls/x86_64", 0x7ffe9eb1d810, 0) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/tls/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1
ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/tls", 0x7ffe9eb1d810, 0) = -1 ENOENT (No
such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/haswell/x86_64/libstdc++.so.6",
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/haswell/x86_64", 0x7ffe9eb1d810, 0) = -1
ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/haswell/libstdc++.so.6", O_RDONLY|O_CLOEXEC)
= -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/haswell", 0x7ffe9eb1d810, 0) = -1 ENOENT
(No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/x86_64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) =
-1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/../lib/x86_64", 0x7ffe9eb1d810, 0) = -1 ENOENT
(No such file or directory)
openat(AT_FDCWD, "/usr/lib/../lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"...,
832) = 832
pread64(3,
"\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\263\352\353\313SiHub\345-\330\320\26\311\315"...,
36, 800) = 36
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=543008615,
st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=37504, st_size=19200288, st_atime=1654531638 /*
2022-06-07T00:07:18.147568903+0800 */, st_atime_nsec=147568903,
st_mtime=1652584780 /* 2022-05-15T11:19:40+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.207510482+0800 */,
st_ctime_nsec=207510482}, AT_EMPTY_PATH) = 0
mmap(NULL, 2320384, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f9b964d6000
mmap(0x7f9b9656f000, 1138688, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x99000) = 0x7f9b9656f000
mmap(0x7f9b96685000, 487424, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0x1af000) = 0x7f9b96685000
mmap(0x7f9b966fc000, 57344, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x225000) = 0x7f9b966fc000
mmap(0x7f9b9670a000, 10240, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9b9670a000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/../lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"...,
832) = 832
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=542695046,
st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=1840, st_size=940448, st_atime=1654568471 /*
2022-06-07T10:21:11.657604164+0800 */, st_atime_nsec=657604164,
st_mtime=1654508756 /* 2022-06-06T17:45:56+0800 */, st_mtime_nsec=0,
st_ctime=1654568469 /* 2022-06-07T10:21:09.037604175+0800 */,
st_ctime_nsec=37604175}, AT_EMPTY_PATH) = 0
mmap(NULL, 942304, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9b963ef000
mmap(0x7f9b963fd000, 495616, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7f9b963fd000
mmap(0x7f9b96476000, 385024, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0x87000) = 0x7f9b96476000
mmap(0x7f9b964d4000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe4000) = 0x7f9b964d4000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/../lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"...,
832) = 832
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=542695451,
st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=1120, st_size=571888, st_atime=1654531638 /*
2022-06-07T00:07:18.147568903+0800 */, st_atime_nsec=147568903,
st_mtime=1652584780 /* 2022-05-15T11:19:40+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.207510482+0800 */,
st_ctime_nsec=207510482}, AT_EMPTY_PATH) = 0
mmap(NULL, 127304, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9b963cf000
mmap(0x7f9b963d2000, 94208, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f9b963d2000
mmap(0x7f9b963e9000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0x1a000) = 0x7f9b963e9000
mmap(0x7f9b963ed000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d000) = 0x7f9b963ed000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b963cd000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b963ca000
arch_prctl(ARCH_SET_FS, 0x7f9b963ca7c0) = 0
set_tid_address(0x7f9b963caa90)         = 5225
set_robust_list(0x7f9b963caaa0, 24)     = 0
rseq(0x7f9b963cb160, 0x20, 0, 0x53053053) = 0
mprotect(0x7f9b96906000, 16384, PROT_READ) = 0
mprotect(0x7f9b963ed000, 4096, PROT_READ) = 0
mprotect(0x7f9b964d4000, 4096, PROT_READ) = 0
mprotect(0x7f9b966fc000, 53248, PROT_READ) = 0
mprotect(0x7f9b96a5b000, 16384, PROT_READ) = 0
mprotect(0x555ec8afa000, 4096, PROT_READ) = 0
mprotect(0x7f9b97015000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024,
rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f9b96fc8000, 97631)           = 0
readlink("/proc/self/exe", "/home/william/Documents/Code/C++"..., 4096) = 55
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b97014000
open("/proc/self/cmdline", O_RDONLY)    = 3
read(3, "./ftw-bug\0/usr/local\0", 4096) = 21
read(3, "", 4075)                       = 0
close(3)                                = 0
munmap(0x7f9b97014000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b97014000
open("/proc/self/environ", O_RDONLY)    = 3
read(3, "SHELL=/bin/bash\0SESSION_MANAGER="..., 4096) = 1848
read(3, "", 2248)                       = 0
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fde000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fdc000
mmap(NULL, 3727360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b9603c000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95e3c000
munmap(0x7f9b95e3c000, 802816)          = 0
munmap(0x7f9b96000000, 245760)          = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fdb000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95d00000
munmap(0x7f9b95e00000, 1048576)         = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fda000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95b00000
munmap(0x7f9b95c00000, 1048576)         = 0
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95900000
munmap(0x7f9b95a00000, 1048576)         = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd9000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95700000
munmap(0x7f9b95800000, 1048576)         = 0
prlimit64(0, RLIMIT_CORE, NULL, {rlim_cur=0, rlim_max=0}) = 0
prlimit64(0, RLIMIT_CORE, {rlim_cur=0, rlim_max=0}, NULL) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "555ec8af7000-555ec8af8000 r--p 0"..., 4096) = 4093
read(3, "7f9", 3)                       = 3
close(3)                                = 0
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd7000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "555ec8af7000-555ec8af8000 r--p 0"..., 8192) = 4093
read(3, "7f9b97017000-7f9b97019000 rw-p 0"..., 4099) = 428
read(3, "", 3671)                       = 0
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd6000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "555ec8af7000-555ec8af8000 r--p 0"..., 4096) = 4093
read(3, "7f9", 3)                       = 3
close(3)                                = 0
munmap(0x7f9b96fd6000, 4096)            = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd5000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "555ec8af7000-555ec8af8000 r--p 0"..., 8192) = 4093
read(3, "7f9b97017000-7f9b97019000 rw-p 0"..., 4099) = 428
read(3, "", 3671)                       = 0
close(3)                                = 0
munmap(0x7f9b96fd5000, 8192)            = 0
mmap(0x7fff7000, 268435456, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7fff7000
madvise(0x7fff7000, 268435456, MADV_NOHUGEPAGE) = 0
madvise(0x7fff7000, 268435456, MADV_DONTDUMP) = 0
mmap(0x2008fff7000, 15392894357504, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x2008fff7000
madvise(0x2008fff7000, 15392894357504, MADV_NOHUGEPAGE) = 0
madvise(0x2008fff7000, 15392894357504, MADV_DONTDUMP) = 0
mmap(0x8fff7000, 2199023255552, PROT_NONE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x8fff7000
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
mmap(NULL, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fcf000
sigaltstack({ss_sp=0x7f9b96fcf000, ss_flags=0, ss_size=32768}, NULL) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x7f9b969dda00, sa_mask=[],
sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO,
sa_restorer=0x7f9b9674b8e0}, NULL, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x7f9b969dda00, sa_mask=[],
sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO,
sa_restorer=0x7f9b9674b8e0}, NULL, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x7f9b969dda00, sa_mask=[],
sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO,
sa_restorer=0x7f9b9674b8e0}, NULL, 8) = 0
mmap(0x600000000000, 4398046519296, PROT_NONE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x600000000000
mmap(0x640000000000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x640000000000
mmap(NULL, 8388608, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0)
= 0x7f9b94f00000
mmap(NULL, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b9602e000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fce000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fcd000
getpid()                                = 5225
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024,
rlim_max=RLIM64_INFINITY}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fcc000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "7fff7000-8fff7000 rw-p 00000000 "..., 4096) = 4015
read(3, "7f9b96fe2000-7f9b97009000 r-xp 0"..., 81) = 81
close(3)                                = 0
munmap(0x7f9b96fcc000, 4096)            = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fcb000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "7fff7000-8fff7000 rw-p 00000000 "..., 8192) = 4015
read(3, "7f9b96fe2000-7f9b97009000 r-xp 0"..., 4177) = 786
read(3, "", 3391)                       = 0
close(3)                                = 0
munmap(0x7f9b96fd7000, 8192)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "7fff7000-8fff7000 rw-p 00000000 "..., 4096) = 4064
read(3, "7f9b96fe2000-7f9b97009000 r-xp 0", 32) = 32
close(3)                                = 0
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd7000
open("/proc/self/maps", O_RDONLY)       = 3
read(3, "7fff7000-8fff7000 rw-p 00000000 "..., 8192) = 4015
read(3, "7f9b96fe2000-7f9b97009000 r-xp 0"..., 4177) = 786
read(3, "", 3391)                       = 0
close(3)                                = 0
munmap(0x7f9b96fd7000, 8192)            = 0
mmap(0x100053c5c000, 1048576, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x100053c5c000
madvise(0x100053c5c000, 1048576, MADV_NOHUGEPAGE) = 0
madvise(0x100053c5c000, 1048576, MADV_DONTDUMP) = 0
sigaltstack(NULL, {ss_sp=0x7f9b96fcf000, ss_flags=0, ss_size=32768}) = 0
mmap(NULL, 1179648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b94de0000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b94be0000
munmap(0x7f9b94be0000, 131072)          = 0
munmap(0x7f9b94d00000, 917504)          = 0
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b94a00000
munmap(0x7f9b94b00000, 1048576)         = 0
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
munmap(0x7f9b96fd8000, 4096)            = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fd7000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fc9000
clock_gettime(CLOCK_MONOTONIC, {tv_sec=3160, tv_nsec=24744941}) = 0
mmap(0x606000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x606000000000
mmap(0x606e00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x606e00000000
mmap(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95e00000
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b9601e000
mmap(NULL, 524288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b95c80000
clock_gettime(CLOCK_MONOTONIC, {tv_sec=3160, tv_nsec=24905693}) = 0
mmap(0x603000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x603000000000
mmap(0x603e00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x603e00000000
clock_gettime(CLOCK_MONOTONIC, {tv_sec=3160, tv_nsec=25007593}) = 0
mmap(0x60b000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x60b000000000
mmap(0x60be00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x60be00000000
clock_gettime(CLOCK_MONOTONIC, {tv_sec=3160, tv_nsec=25117020}) = 0
mmap(0x624000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x624000000000
mmap(0x624e00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x624e00000000
mmap(0x631000000000, 131072, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x631000000000
mmap(0x631e00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x631e00000000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b96fc8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b9601d000
mmap(0x62d000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000000000
mmap(0x62de00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62de00000000
newfstatat(AT_FDCWD, "/usr/local", {st_dev=makedev(0x103, 0x2), st_ino=4894502,
st_mode=S_IFDIR|0755, st_nlink=11, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=114, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, 0) = 0
mmap(0x602000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x602000000000
mmap(0x602e00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x602e00000000
openat(AT_FDCWD, "/usr/local", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
newfstatat(3, "", {st_dev=makedev(0x103, 0x2), st_ino=4894502,
st_mode=S_IFDIR|0755, st_nlink=11, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=114, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, AT_EMPTY_PATH)
= 0
mmap(0x62d000010000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000010000
newfstatat(1, "", {st_dev=makedev(0, 0x1a), st_ino=4, st_mode=S_IFCHR|0620,
st_nlink=1, st_uid=1000, st_gid=5, st_blksize=1024, st_blocks=0,
st_rdev=makedev(0x88, 0x1), st_atime=1654584650 /*
2022-06-07T14:50:50.778827101+0800 */, st_atime_nsec=778827101,
st_mtime=1654584650 /* 2022-06-07T14:50:50.778827101+0800 */,
st_mtime_nsec=778827101, st_ctime=1654584567 /*
2022-06-07T14:49:27.778827101+0800 */, st_ctime_nsec=778827101}, AT_EMPTY_PATH)
= 0
mmap(0x619000000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x619000000000
mmap(0x619e00000000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x619e00000000
write(1, "/usr/local\n", 11)            = 11
getdents64(3, [{d_ino=4894502, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=271959886, d_off=12, d_reclen=24, d_type=DT_DIR,
d_name=".."}, {d_ino=273600348, d_off=14, d_reclen=24, d_type=DT_DIR,
d_name="src"}, {d_ino=546496504, d_off=16, d_reclen=24, d_type=DT_DIR,
d_name="etc"}, {d_ino=811226691, d_off=18, d_reclen=24, d_type=DT_DIR,
d_name="lib"}, {d_ino=4894503, d_off=20, d_reclen=24, d_type=DT_DIR,
d_name="bin"}, {d_ino=273600349, d_off=22, d_reclen=24, d_type=DT_DIR,
d_name="sbin"}, {d_ino=546496505, d_off=25, d_reclen=32, d_type=DT_DIR,
d_name="share"}, {d_ino=811226692, d_off=30, d_reclen=32, d_type=DT_DIR,
d_name="include"}, {d_ino=273600350, d_off=33, d_reclen=32, d_type=DT_DIR,
d_name="games"}, {d_ino=269461327, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name="man"}], 32768) = 288
newfstatat(3, "src", {st_dev=makedev(0x103, 0x2), st_ino=273600348,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, 0) = 0
openat(3, "src", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=273600348,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, AT_EMPTY_PATH) = 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
write(1, "/usr/local/src\n", 15)        = 15
getdents64(4, [{d_ino=273600348, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "etc", {st_dev=makedev(0x103, 0x2), st_ino=546496504,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, 0) = 0
openat(3, "etc", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=546496504,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, AT_EMPTY_PATH) = 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
mmap(0x62d000020000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000020000
write(1, "/usr/local/etc\n", 15)        = 15
getdents64(4, [{d_ino=546496504, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "lib", {st_dev=makedev(0x103, 0x2), st_ino=811226691,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1607950662 /* 2020-12-14T20:57:42.305475432+0800 */,
st_mtime_nsec=305475432, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, 0) = 0
openat(3, "lib", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=811226691,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1607950662 /* 2020-12-14T20:57:42.305475432+0800 */,
st_mtime_nsec=305475432, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, AT_EMPTY_PATH)
= 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
mmap(0x62d000030000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000030000
write(1, "/usr/local/lib\n", 15)        = 15
getdents64(4, [{d_ino=811226691, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "bin", {st_dev=makedev(0x103, 0x2), st_ino=4894503,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1607950662 /* 2020-12-14T20:57:42.305475432+0800 */,
st_mtime_nsec=305475432, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, 0) = 0
openat(3, "bin", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=4894503,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1607950662 /* 2020-12-14T20:57:42.305475432+0800 */,
st_mtime_nsec=305475432, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, AT_EMPTY_PATH)
= 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
write(1, "/usr/local/bin\n", 15)        = 15
getdents64(4, [{d_ino=4894503, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "sbin", {st_dev=makedev(0x103, 0x2), st_ino=273600349,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, 0) = 0
openat(3, "sbin", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=273600349,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, AT_EMPTY_PATH) = 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
mmap(0x62d000040000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000040000
write(1, "/usr/local/sbin\n", 16)       = 16
getdents64(4, [{d_ino=273600349, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "share", {st_dev=makedev(0x103, 0x2), st_ino=546496505,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=17, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1654312357 /* 2022-06-04T11:12:37.565581311+0800 */,
st_mtime_nsec=565581311, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, 0) = 0
openat(3, "share", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=546496505,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=17, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1654312357 /* 2022-06-04T11:12:37.565581311+0800 */,
st_mtime_nsec=565581311, st_ctime=1654531628 /*
2022-06-07T00:07:08.287510951+0800 */, st_ctime_nsec=287510951}, AT_EMPTY_PATH)
= 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
write(1, "/usr/local/share\n", 17)      = 17
getdents64(4, [{d_ino=546496505, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=12, d_reclen=24, d_type=DT_DIR,
d_name=".."}, {d_ino=546496506, d_off=512, d_reclen=24, d_type=DT_LNK,
d_name="man"}], 32768) = 72
newfstatat(4, "man", {st_dev=makedev(0x103, 0x2), st_ino=269461327,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654568737 /*
2022-06-07T10:25:37.801839898+0800 */, st_atime_nsec=801839898,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654568715 /*
2022-06-07T10:25:15.622300272+0800 */, st_ctime_nsec=622300272}, 0) = 0
openat(4, "man", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 5
newfstatat(5, "", {st_dev=makedev(0x103, 0x2), st_ino=269461327,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654568737 /*
2022-06-07T10:25:37.801839898+0800 */, st_atime_nsec=801839898,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654568715 /*
2022-06-07T10:25:15.622300272+0800 */, st_ctime_nsec=622300272}, AT_EMPTY_PATH)
= 0
fcntl(5, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
mmap(0x62d000050000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000050000
write(1, "/usr/local/share/man\n", 21)  = 21
getdents64(5, [{d_ino=269461327, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(5, [], 32768)                = 0
close(5)                                = 0
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "include", {st_dev=makedev(0x103, 0x2), st_ino=811226692,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, 0) = 0
openat(3, "include", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=811226692,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, AT_EMPTY_PATH) = 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
mmap(0x62d000060000, 65536, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x62d000060000
write(1, "/usr/local/include\n", 19)    = 19
getdents64(4, [{d_ino=811226692, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "games", {st_dev=makedev(0x103, 0x2), st_ino=273600350,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, 0) = 0
openat(3, "games", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
newfstatat(4, "", {st_dev=makedev(0x103, 0x2), st_ino=273600350,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654531652 /*
2022-06-07T00:07:32.167651315+0800 */, st_atime_nsec=167651315,
st_mtime=1573662182 /* 2019-11-14T00:23:02+0800 */, st_mtime_nsec=0,
st_ctime=1654531628 /* 2022-06-07T00:07:08.287510951+0800 */,
st_ctime_nsec=287510951}, AT_EMPTY_PATH) = 0
fcntl(4, F_GETFL)                       = 0x18800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
write(1, "/usr/local/games\n", 17)      = 17
getdents64(4, [{d_ino=273600350, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=512, d_reclen=24, d_type=DT_DIR,
d_name=".."}], 32768) = 48
getdents64(4, [], 32768)                = 0
close(4)                                = 0
newfstatat(3, "man", {st_dev=makedev(0x103, 0x2), st_ino=269461327,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654568737 /*
2022-06-07T10:25:37.801839898+0800 */, st_atime_nsec=801839898,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654568715 /*
2022-06-07T10:25:15.622300272+0800 */, st_ctime_nsec=622300272}, 0) = 0
getdents64(3, [], 32768)                = 0
close(3)                                = 0
gettid()                                = 5225
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
getpid()                                = 5225
mmap(NULL, 2101248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b947ff000
mprotect(0x7f9b947ff000, 4096, PROT_NONE) = 0
rt_sigprocmask(SIG_BLOCK, ~[ILL ABRT BUS FPE SEGV XCPU XFSZ], [], 8) = 0
clone(child_stack=0x7f9b949ffff0,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_UNTRACED) = 5226
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
getpid()                                = 5225
prctl(PR_SET_PTRACER, 5226)             = 0
futex(0x7ffe9eb1e2f8, FUTEX_WAKE_PRIVATE, 1) = 1
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
wait4(5226, NULL, __WALL, NULL)         = 5226
munmap(0x7f9b947ff000, 2101248)         = 0
getpid()                                = 5225
write(2, "==5225==LeakSanitizer has encoun"..., 53==5225==LeakSanitizer has
encountered a fatal error.
) = 53
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7f9b9600d000
getpid()                                = 5225
write(2, "==5225==HINT: For debugging, try"..., 101==5225==HINT: For debugging,
try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
) = 101
getpid()                                = 5225
write(2, "==5225==HINT: LeakSanitizer does"..., 74==5225==HINT: LeakSanitizer
does not work under ptrace (strace, gdb, etc)
) = 74
exit_group(1)                           = ?
+++ exited with 1 +++

I also simplified the program a little bit to make it easier to debug, code:
#include <errno.h>
#include <stdio.h>
#include <string.h>

#include <ftw.h>

static inline int callback(const char *path, const struct stat *stat, int flag)
{
        puts(path);
        return 0;
}

int main(int argc, const char *argv[])
{
        if (argc > 1 && ftw(argv[1], callback, 4096) != 0)
                printf("ERROR: Failed to traverse the directory tree! (%s)\n",
strerror(errno));
        return 0;
}

Command Line Output:
/usr/local
/usr/local/src
/usr/local/etc
/usr/local/lib
/usr/local/bin
/usr/local/sbin
/usr/local/share
/usr/local/share/man
/usr/local/include
/usr/local/games

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
                   ` (4 preceding siblings ...)
  2022-06-07  6:56 ` galaxyking0419 at gmail dot com
@ 2022-06-07  7:28 ` fweimer at redhat dot com
  2022-06-07  9:49 ` galaxyking0419 at gmail dot com
  2022-06-07  9:55 ` fweimer at redhat dot com
  7 siblings, 0 replies; 9+ messages in thread
From: fweimer at redhat dot com @ 2022-06-07  7:28 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

--- Comment #5 from Florian Weimer <fweimer at redhat dot com> ---
I think what happens is that /usr/local/share/man is a symbolic link to
/usr/local/man:

write(1, "/usr/local/share\n", 17)      = 17
getdents64(4, [{d_ino=546496505, d_off=10, d_reclen=24, d_type=DT_DIR,
d_name="."}, {d_ino=4894502, d_off=12, d_reclen=24, d_type=DT_DIR,
d_name=".."}, {d_ino=546496506, d_off=512, d_reclen=24, d_type=DT_LNK,
d_name="man"}], 32768) = 72
newfstatat(4, "man", {st_dev=makedev(0x103, 0x2), st_ino=269461327,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654568737 /*
2022-06-07T10:25:37.801839898+0800 */, st_atime_nsec=801839898,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654568715 /*
2022-06-07T10:25:15.622300272+0800 */, st_ctime_nsec=622300272}, 0) = 0
openat(4, "man", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 5
newfstatat(5, "", {st_dev=makedev(0x103, 0x2), st_ino=269461327,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=0, st_size=6, st_atime=1654568737 /*
2022-06-07T10:25:37.801839898+0800 */, st_atime_nsec=801839898,
st_mtime=1654525540 /* 2022-06-06T22:25:40.073638960+0800 */,
st_mtime_nsec=73638960, st_ctime=1654568715 /*
2022-06-07T10:25:15.622300272+0800 */, st_ctime_nsec=622300272}, AT_EMPTY_PATH)
= 0

ftw follows symbolic links, but detects reoccurring directories (to avoid
loops). For nftw, there is the FTW_PHYS flag to disable symbolic link
processing. There is also FTW_DEPTH, which suggests that the default (without
the flag) should be breadth-first, and that is not strictly the case here. But
even if we switched to strict breadth-first (which is likely not a
backwards-compatible change), it would not address unpredictable results in the
case of symbolic links between cousins (at the same depth). Which directory is
in the output would still depend on directory iteration order, which can vary
between systems that have the same directory contents.

I'm inclined to close this as NOTABUG.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
                   ` (5 preceding siblings ...)
  2022-06-07  7:28 ` fweimer at redhat dot com
@ 2022-06-07  9:49 ` galaxyking0419 at gmail dot com
  2022-06-07  9:55 ` fweimer at redhat dot com
  7 siblings, 0 replies; 9+ messages in thread
From: galaxyking0419 at gmail dot com @ 2022-06-07  9:49 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

--- Comment #6 from William Tang <galaxyking0419 at gmail dot com> ---
Thanks for the suggestions, FTW_PHYS is exactly what I needed.  Please close
the bug.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug libc/29228] ftw() does not find all directories
  2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
                   ` (6 preceding siblings ...)
  2022-06-07  9:49 ` galaxyking0419 at gmail dot com
@ 2022-06-07  9:55 ` fweimer at redhat dot com
  7 siblings, 0 replies; 9+ messages in thread
From: fweimer at redhat dot com @ 2022-06-07  9:55 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=29228

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |NOTABUG
             Status|WAITING                     |RESOLVED

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-06-07  9:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-06  8:50 [Bug libc/29228] New: ftw() does not find all directories galaxyking0419 at gmail dot com
2022-06-06 17:58 ` [Bug libc/29228] " fweimer at redhat dot com
2022-06-07  2:26 ` galaxyking0419 at gmail dot com
2022-06-07  6:10 ` fweimer at redhat dot com
2022-06-07  6:11 ` fweimer at redhat dot com
2022-06-07  6:56 ` galaxyking0419 at gmail dot com
2022-06-07  7:28 ` fweimer at redhat dot com
2022-06-07  9:49 ` galaxyking0419 at gmail dot com
2022-06-07  9:55 ` fweimer at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).