From: Rohan Sable Date: Mon, 7 Mar 2022 14:14:13 +0000 (+0000) Subject: ls: avoid triggering automounts X-Git-Tag: v9.1~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=85c975df2c25bd799370b04bb294e568e001102f;p=thirdparty%2Fcoreutils.git 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 --- diff --git a/NEWS b/NEWS index af6596b062..a3442c5dd7 100644 --- a/NEWS +++ b/NEWS @@ -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 diff --git a/src/ls.c b/src/ls.c index 1930e4abbc..255789061b 100644 --- a/src/ls.c +++ b/src/ls.c @@ -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);