summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Gervais <francoisgervais@gmail.com>2021-04-12 18:25:29 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-05-15 20:24:14 +0200
commitb31844123ea2171db1f97c0f6b3a688fa2df0b78 (patch)
tree94ac0d83cd850b822005482d5679daf9c4358a72
parenta6dd369b7f2592c98a132ea3e713a7a690da0942 (diff)
downloadsystemd-b31844123ea2171db1f97c0f6b3a688fa2df0b78.tar.gz
load-fragment: parse specifiers in CPUAffinity= (#19281)
(cherry picked from commit 54cfe9a75f0e84d0604d39b87b1d919542336809) (cherry picked from commit bf3bd598136397b5371188bcdec0127e56a1db9a) (cherry picked from commit 595b1cefbb71397ba08b770136e461022d774d1f)
-rw-r--r--src/core/load-fragment.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index e9afc9b97a..8235354e89 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -1546,6 +1546,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);
@@ -1560,7 +1562,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;