Skip to content

Commit f172b22

Browse files
authored
Handle/ignore AT_NO_AUTOMOUNT in fstatat (#18261)
Fixes: #17660
1 parent dcfb771 commit f172b22

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

src/library_syscall.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,9 +861,9 @@ var SyscallsLibrary = {
861861
path = SYSCALLS.getStr(path);
862862
var nofollow = flags & {{{ cDefine('AT_SYMLINK_NOFOLLOW') }}};
863863
var allowEmpty = flags & {{{ cDefine('AT_EMPTY_PATH') }}};
864-
flags = flags & (~{{{ cDefine('AT_SYMLINK_NOFOLLOW') | cDefine('AT_EMPTY_PATH') }}});
864+
flags = flags & (~{{{ cDefine('AT_SYMLINK_NOFOLLOW') | cDefine('AT_EMPTY_PATH') | cDefine('AT_NO_AUTOMOUNT') }}});
865865
#if ASSERTIONS
866-
assert(!flags, flags);
866+
assert(!flags, 'unknown flags in __syscall_newfstatat: ' + flags);
867867
#endif
868868
path = SYSCALLS.calculateAt(dirfd, path, allowEmpty);
869869
return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf);

src/struct_info.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@
103103
"AT_FDCWD",
104104
"AT_SYMLINK_NOFOLLOW",
105105
"AT_REMOVEDIR",
106-
"AT_EMPTY_PATH"
106+
"AT_EMPTY_PATH",
107+
"AT_NO_AUTOMOUNT"
107108
],
108109
"structs": {
109110
"flock": [

test/reference_struct_info.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"AL_VELOCITY": 4102,
3535
"AT_EMPTY_PATH": 4096,
3636
"AT_FDCWD": -100,
37+
"AT_NO_AUTOMOUNT": 2048,
3738
"AT_REMOVEDIR": 512,
3839
"AT_SYMLINK_NOFOLLOW": 256,
3940
"AUDIO_F32": 33056,

test/stat/test_fstatat.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,9 @@ void test() {
146146
close(fd);
147147

148148
// lstat a link - with AT_FDCWD and AT_SYMLINK_NOFOLLOW.
149+
// Also test that AT_NO_AUTOMOUNT is ignored.
149150
memset(&s, 0, sizeof(s));
150-
err = fstatat(AT_FDCWD, "folder/file-link", &s, AT_SYMLINK_NOFOLLOW);
151+
err = fstatat(AT_FDCWD, "folder/file-link", &s, AT_SYMLINK_NOFOLLOW|AT_NO_AUTOMOUNT);
151152
assert(!err);
152153
assert(s.st_dev);
153154
assert(s.st_ino);

0 commit comments

Comments
 (0)