]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/unit: do not load drop-in configs for masked unit files
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Sep 2025 01:13:17 +0000 (10:13 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Sep 2025 01:58:33 +0000 (10:58 +0900)
Otherwise, ExecXYZ= given by drop-ins may be added to a masked unit,
then commands may be unexpectedly executed. For example, if an ExecStop=
is set in a drop-in for a running unit, then 'systemctl mask --now' for
the unit try to invoke the command specified in ExecStop=.

Fixes #38802.

src/core/unit.c

index 1eb4de6462913838e4126043658054e336e9f886..7d9e24c5de893a0d6072f30b511acf51b3f5f9d5 100644 (file)
@@ -1422,6 +1422,9 @@ int unit_load_fragment_and_dropin(Unit *u, bool fragment_required) {
         if (r < 0)
                 return r;
 
+        if (u->load_state == UNIT_MASKED)
+                return 0;
+
         if (u->load_state == UNIT_STUB) {
                 if (fragment_required)
                         return -ENOENT;