From 5be5d39bf0cda1026138bb6d7f43c03bb1f9e5cf Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Sat, 4 Feb 2017 20:50:44 -0500 Subject: core: implement masking of .wants/.requires symlinks Fixes #1169. Fixes #4830. Example log errors: Feb 04 22:13:28 systemd[1462]: foo.service: Wants dependency on empty_file.service is masked by /home/zbyszek/.config/systemd/user/foo.service.wants/empty_file.service, ignoring Feb 04 22:13:28 systemd[1462]: foo.service: Wants dependency on masked.service is masked by /home/zbyszek/.config/systemd/user/foo.service.wants/masked.service, ignoring --- src/core/load-dropin.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/core/load-dropin.c') diff --git a/src/core/load-dropin.c b/src/core/load-dropin.c index 0511fb38ef..a43b6540ff 100644 --- a/src/core/load-dropin.c +++ b/src/core/load-dropin.c @@ -47,6 +47,13 @@ static int process_deps(Unit *u, UnitDependency dependency, const char *dir_suff entry = basename(*p); + if (null_or_empty_path(*p) > 0) { + /* an error usually means an invalid symlink, which is not a mask */ + log_unit_debug(u, "%s dependency on %s is masked by %s, ignoring.", + unit_dependency_to_string(dependency), entry, *p); + continue; + } + r = is_symlink(*p); if (r < 0) { log_unit_warning_errno(u, r, "%s dropin %s unreadable, ignoring: %m", -- cgit v1.2.3-54-g00ecf