From 17de67aa1d7dee8cb8ea3040867a989af44a8243 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 23 May 2022 12:58:08 +0200 Subject: [PATCH] libmount: (mkdir) cannonicalize after mkdir Signed-off-by: Karel Zak --- libmount/src/hook_mkdir.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libmount/src/hook_mkdir.c b/libmount/src/hook_mkdir.c index ba1a8a4ccb..191899f303 100644 --- a/libmount/src/hook_mkdir.c +++ b/libmount/src/hook_mkdir.c @@ -107,6 +107,8 @@ static int hook_prepare_target( cxt->user_mountflags & MNT_MS_XFSTABCOMM) && is_mkdir_required(tgt, cxt->fs, &mode, &rc)) { + struct libmnt_cache *cache; + /* supported only for root or non-suid mount(8) */ if (!mnt_context_is_restricted(cxt)) { rc = ul_mkdir_p(tgt, mode); @@ -114,6 +116,15 @@ static int hook_prepare_target( DBG(HOOK, ul_debugobj(hs, "mkdir %s failed: %m", tgt)); } else rc = -EPERM; + + if (rc == 0) { + cache = mnt_context_get_cache(cxt); + if (cache) { + char *path = mnt_resolve_path(tgt, cache); + if (path && strcmp(path, tgt) != 0) + rc = mnt_fs_set_target(cxt->fs, path); + } + } } return rc; -- 2.47.3