diff options
author | Karel Zak <kzak@redhat.com> | 2024-04-22 13:09:04 +0200 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2024-04-22 13:09:04 +0200 |
commit | 97f7bfc0fdf74b6a6e220ba9d2f620386e660b29 (patch) | |
tree | b69e7c2791251cd99adfe0a4fda50495fc490a23 | |
parent | 89728ce65d5f549179a7eb4284bdfd4c7ad7dfe8 (diff) | |
download | util-linux-97f7bfc0fdf74b6a6e220ba9d2f620386e660b29.tar.gz |
libmount: Fix access check for utab in context
The function mnt_has_regular_utab() properly detects that the utab is
not writable, but this is ignored by the high-level context API. As a
result, the library later attempts to update the file and ends up with
a warning in mount(8):
$ mkdir sys
$ unshare --map-root-user --mount
$ mount --rbind /sys sys
$ umount --lazy sys; echo $?
umount: /home/user/sys: filesystem was unmounted, but failed to update userspace mount table.
16
In this case, the utab should be ignored.
Fixes: https://github.com/util-linux/util-linux/issues/2981
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | libmount/src/context.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libmount/src/context.c b/libmount/src/context.c index 952287a26a..5206c1d587 100644 --- a/libmount/src/context.c +++ b/libmount/src/context.c @@ -367,8 +367,7 @@ const char *mnt_context_get_writable_tabpath(struct libmnt_context *cxt) { assert(cxt); - context_init_paths(cxt, 1); - return cxt->utab_path; + return mnt_context_utab_writable(cxt) ? cxt->utab_path : NULL; } |