diff options
author | Francois Gervais <francoisgervais@gmail.com> | 2021-04-12 18:25:29 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-05-15 19:31:56 +0200 |
commit | 595b1cefbb71397ba08b770136e461022d774d1f (patch) | |
tree | 1f7a5b2dd40b553e6a4f90e2739ab541757bb208 | |
parent | f4a1812f95d0c215ef3a9fec24e055bc976c41f1 (diff) | |
download | systemd-595b1cefbb71397ba08b770136e461022d774d1f.tar.gz |
load-fragment: parse specifiers in CPUAffinity= (#19281)
(cherry picked from commit 54cfe9a75f0e84d0604d39b87b1d919542336809)
(cherry picked from commit bf3bd598136397b5371188bcdec0127e56a1db9a)
-rw-r--r-- | src/core/load-fragment.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index 187b18fb4c..143ac16517 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -1680,6 +1680,8 @@ int config_parse_exec_cpu_affinity(const char *unit, void *userdata) { ExecContext *c = data; + const Unit *u = userdata; + _cleanup_free_ char *k = NULL; int r; assert(filename); @@ -1694,7 +1696,15 @@ int config_parse_exec_cpu_affinity(const char *unit, 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; |