From f94da307f91e4f3346dca62c7c50a7816a2d946a Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Wed, 28 Feb 2024 16:34:05 +0100 Subject: [PATCH] sysext: Fail when trying to import mutable layer that's a symlink to hierarchy --- src/sysext/sysext.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c index 267c90f9764..b984e9b9a07 100644 --- a/src/sysext/sysext.c +++ b/src/sysext/sysext.c @@ -880,10 +880,8 @@ static int maybe_import_mutable_directory(OverlayFSPaths *op) { r = resolved_paths_equal(op->resolved_hierarchy, op->resolved_mutable_directory); if (r < 0) return log_error_errno(r, "Failed to check equality of hierarchy %s and its mutable directory %s: %m", op->resolved_hierarchy, op->resolved_mutable_directory); - if (r > 0) { - log_debug("Not importing mutable directory for hierarchy %s as a lower dir, because it points to the hierarchy itself", op->hierarchy); - return 0; - } + if (r > 0) + return log_error_errno(SYNTHETIC_ERRNO(ELOOP), "Not importing mutable directory for hierarchy %s as a lower dir, because it points to the hierarchy itself", op->hierarchy); r = strv_extend(&op->lower_dirs, op->resolved_mutable_directory); if (r < 0) @@ -919,10 +917,8 @@ static int maybe_import_ignored_mutable_directory(OverlayFSPaths *op) { if (r < 0) return log_error_errno(r, "Failed to check equality of hierarchy %s and its mutable directory %s: %m", op->resolved_hierarchy, op->resolved_mutable_directory); - if (r > 0) { - log_debug("Not importing mutable directory for hierarchy %s as a lower dir, because it points to the hierarchy itself", op->hierarchy); - return 0; - } + if (r > 0) + return log_error_errno(SYNTHETIC_ERRNO(ELOOP), "Not importing mutable directory for hierarchy %s as a lower dir, because it points to the hierarchy itself", op->hierarchy); r = strv_consume(&op->lower_dirs, TAKE_PTR(resolved_path)); if (r < 0) -- 2.47.3