|
| 1 | +From 7dbfe31a83f45d5aef2b508697e9511c569ffbc8 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Karel Zak < [email protected]> |
| 3 | +Date: Mon, 24 Mar 2025 14:31:05 +0100 |
| 4 | +Subject: [PATCH] libmount: fix --no-canonicalize regression |
| 5 | + |
| 6 | +Fixes: https://github.com/util-linux/util-linux/issues/3474 |
| 7 | +Signed-off-by: Karel Zak < [email protected]> |
| 8 | +--- |
| 9 | + libmount/src/context.c | 3 --- |
| 10 | + sys-utils/mount.8.adoc | 2 +- |
| 11 | + 2 files changed, 1 insertion(+), 4 deletions(-) |
| 12 | + |
| 13 | +diff --git a/libmount/src/context.c b/libmount/src/context.c |
| 14 | +index 0323cb23d34..15a8ad3bbd0 100644 |
| 15 | +--- a/libmount/src/context.c |
| 16 | ++++ b/libmount/src/context.c |
| 17 | +@@ -530,9 +530,6 @@ int mnt_context_is_xnocanonicalize( |
| 18 | + assert(cxt); |
| 19 | + assert(type); |
| 20 | + |
| 21 | +- if (mnt_context_is_nocanonicalize(cxt)) |
| 22 | +- return 1; |
| 23 | +- |
| 24 | + ol = mnt_context_get_optlist(cxt); |
| 25 | + if (!ol) |
| 26 | + return 0; |
| 27 | +diff --git a/sys-utils/mount.8.adoc b/sys-utils/mount.8.adoc |
| 28 | +index 4f23f8d1f0e..5103b91c578 100644 |
| 29 | +--- a/sys-utils/mount.8.adoc |
| 30 | ++++ b/sys-utils/mount.8.adoc |
| 31 | +@@ -756,7 +756,7 @@ Allow to make a target directory (mountpoint) if it does not exist yet. The opti |
| 32 | + *X-mount.nocanonicalize*[**=**_type_]:: |
| 33 | + Allows disabling of canonicalization for mount source and target paths. By default, the `mount` command resolves all paths to their absolute paths without symlinks. However, this behavior may not be desired in certain situations, such as when binding a mount over a symlink, or a symlink over a directory or another symlink. The optional argument _type_ can be either "source" or "target" (mountpoint). If no _type_ is specified, then canonicalization is disabled for both types. This mount option does not affect the conversion of source tags (e.g. LABEL= or UUID=) and fstab processing. |
| 34 | + + |
| 35 | +-The command line option *--no-canonicalize* overrides this mount option and affects all path and tag conversions in all situations, but it does not modify flags for open_tree syscalls. |
| 36 | ++The command-line option *--no-canonicalize* overrides this mount option and affects all path and tag conversions in all situations, but for backward compatibility, it does not modify open_tree syscall flags and does not allow the bind-mount over a symlink use case. |
| 37 | + + |
| 38 | + Note that *mount*(8) still sanitizes and canonicalizes the source and target paths specified on the command line by non-root users, regardless of the X-mount.nocanonicalize setting. |
| 39 | + |
0 commit comments