diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-08-22 11:58:15 +0200 |
---|---|---|
committer | The Plumber <50238977+systemd-rhel-bot@users.noreply.github.com> | 2020-11-24 19:01:43 +0100 |
commit | db2816ee32fc81ba339175469e46b5dca7af8833 (patch) | |
tree | ea1cc17ae5396386629b4edbf256adab131770d8 | |
parent | 55df2fd634f900419b718ed354132cc86cd533dd (diff) | |
download | systemd-db2816ee32fc81ba339175469e46b5dca7af8833.tar.gz |
shared/install: fix preset operations for non-service instantiated units
Fixes https://github.com/coreos/ignition/issues/1064.
(cherry picked from commit 47ab95fe4315b3f7ee5a3694460a744bb88c52fd)
Related: #1812972
-rw-r--r-- | src/shared/install.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/shared/install.c b/src/shared/install.c index 263b239f10..c2847df3f8 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -2937,20 +2937,17 @@ static int pattern_match_multiple_instances( /* Compose a list of specified instances when unit name is a template */ if (unit_name_is_valid(unit_name, UNIT_NAME_TEMPLATE)) { - _cleanup_free_ char *prefix = NULL; _cleanup_strv_free_ char **out_strv = NULL; - char **iter; - - r = unit_name_to_prefix(unit_name, &prefix); - if (r < 0) - return r; + char **iter; STRV_FOREACH(iter, rule.instances) { _cleanup_free_ char *name = NULL; - r = unit_name_build(prefix, *iter, ".service", &name); + + r = unit_name_replace_instance(unit_name, *iter, &name); if (r < 0) return r; - r = strv_extend(&out_strv, name); + + r = strv_consume(&out_strv, TAKE_PTR(name)); if (r < 0) return r; } |