From: Karel Zak Date: Mon, 22 Apr 2024 11:09:04 +0000 (+0200) Subject: libmount: Fix access check for utab in context X-Git-Tag: v2.42-start~384^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=97f7bfc0fdf74b6a6e220ba9d2f620386e660b29;p=thirdparty%2Futil-linux.git 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 --- diff --git a/libmount/src/context.c b/libmount/src/context.c index 952287a26..5206c1d58 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; }