]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
load-fragment: parse specifiers in CPUAffinity= (#19281)
authorFrancois Gervais <francoisgervais@gmail.com>
Mon, 12 Apr 2021 22:25:29 +0000 (18:25 -0400)
committerGitHub <noreply@github.com>
Mon, 12 Apr 2021 22:25:29 +0000 (07:25 +0900)
src/core/load-fragment.c

index a0c403a60c93d78529b98dfd446cc681d084eb53..6f6a80ccbf2dbb6102da0620402662aedf438184 100644 (file)
@@ -1698,6 +1698,8 @@ int config_parse_exec_cpu_affinity(
                 void *userdata) {
 
         ExecContext *c = data;
+        const Unit *u = userdata;
+        _cleanup_free_ char *k = NULL;
         int r;
 
         assert(filename);
@@ -1712,7 +1714,15 @@ int config_parse_exec_cpu_affinity(
                 return 0;
         }
 
-        r = parse_cpu_set_extend(rvalue, &c->cpu_set, true, unit, filename, line, lvalue);
+        r = unit_full_printf(u, rvalue, &k);
+        if (r < 0) {
+                log_syntax(unit, LOG_WARNING, filename, line, r,
+                           "Failed to resolve unit specifiers in '%s', ignoring: %m",
+                           rvalue);
+                return 0;
+        }
+
+        r = parse_cpu_set_extend(k, &c->cpu_set, true, unit, filename, line, lvalue);
         if (r >= 0)
                 c->cpu_affinity_from_numa = false;