diff options
author | Rohan Sable <rsable@redhat.com> | 2022-03-07 14:14:13 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2022-03-07 23:26:42 +0000 |
commit | 85c975df2c25bd799370b04bb294e568e001102f (patch) | |
tree | 83ff610524f7159561c57539be1898d98a007623 | |
parent | 3f61958495c156446e375b8cf3ecaea2d73e4d51 (diff) | |
download | coreutils-85c975df2c25bd799370b04bb294e568e001102f.tar.gz |
ls: avoid triggering automounts
statx() has different defaults wrt automounting
compared to stat() or lstat(), so explicitly
set the AT_NO_AUTOMOUNT flag to suppress that behavior,
and avoid unintended operations or potential errors.
* src/ls.c (do_statx): Pass AT_NO_AUTOMOUNT to avoid this behavior.
* NEWS: Mention the change in behavior.
Fixes https://bugs.gnu.org/54286
Signed-off-by: Rohan Sable <rsable@redhat.com>
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/ls.c | 2 |
2 files changed, 4 insertions, 1 deletions
@@ -75,6 +75,9 @@ GNU coreutils NEWS -*- outline -*- seek_bytes are therefore obsolescent and are no longer documented, though they still work. + ls no longer tries to automount files, reverting to the behavior + before the statx() call was introduced in coreutils-8.32. + timeout --foreground --kill-after=... will now exit with status 137 if the kill signal was sent, which is consistent with the behavior when the --foreground option is not specified. This allows users to @@ -1177,7 +1177,7 @@ do_statx (int fd, char const *name, struct stat *st, int flags, { struct statx stx; bool want_btime = mask & STATX_BTIME; - int ret = statx (fd, name, flags, mask, &stx); + int ret = statx (fd, name, flags | AT_NO_AUTOMOUNT, mask, &stx); if (ret >= 0) { statx_to_stat (&stx, st); |