From: Zbigniew Jędrzejewski-Szmek Date: Sun, 5 Feb 2017 01:50:44 +0000 (-0500) Subject: core: implement masking of .wants/.requires symlinks X-Git-Tag: v233~143^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5be5d39bf0cda1026138bb6d7f43c03bb1f9e5cf;p=thirdparty%2Fsystemd.git 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 --- diff --git a/src/core/load-dropin.c b/src/core/load-dropin.c index 0511fb38efc..a43b6540ff1 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",