[Samba] missing msdfs referrals from samba directory listing: wrong order in smbd_dirptr_get_entry()?

Michael Tokarev mjt at tls.msk.ru
Fri Jun 7 10:50:22 UTC 2024


So, I compared 4.19 and 4.20 in this context.

4.19:

openat2(30, "dfstest", {flags=O_RDONLY|O_PATH, resolve=RESOLVE_NO_SYMLINKS}, 24) = -1 ELOOP (Too many levels of symbolic links)
openat(30, "dfstest", O_RDONLY|O_PATH)  = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "dfstest", {st_mode=S_IFLNK|0777, st_size=31, ...}, AT_SYMLINK_NOFOLLOW) = 0
openat(30, ".", O_RDONLY)               = 8
newfstatat(8, "", {st_mode=S_IFDIR|S_ISGID|0755, st_size=90, ...}, AT_EMPTY_PATH) = 0
newfstatat(8, "", {st_mode=S_IFDIR|S_ISGID|0755, st_size=90, ...}, AT_EMPTY_PATH) = 0
fcntl(8, F_GETFL)                       = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fcntl(8, F_SETFD, FD_CLOEXEC)           = 0
getdents64(8, 0x564b7bdc4030 /* 9 entries */, 32768) = 256
close(8)                                = 0
openat(30, "dfstest", O_RDONLY|O_PATH)  = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "dfstest", {st_mode=S_IFLNK|0777, st_size=31, ...}, AT_SYMLINK_NOFOLLOW) = 0


4.20:

openat(31, "dfstest", O_RDONLY|O_PATH)  = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "dfstest", {st_mode=S_IFLNK|0777, st_size=31, ...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(31, "dfstest", {st_mode=S_IFLNK|0777, st_size=31, ...}, AT_SYMLINK_NOFOLLOW) = 0
readlinkat(31, "dfstest", "msdfs:", 6)  = 6
newfstatat(31, "dfstest", {st_mode=S_IFLNK|0777, st_size=31, ...}, AT_SYMLINK_NOFOLLOW) = 0


Have to run for now.  Will take a deeper look at this and the case insensitive
issue later.

/mjt



More information about the samba mailing list