From 47ab95fe4315b3f7ee5a3694460a744bb88c52fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 22 Aug 2020 11:58:15 +0200 Subject: [PATCH] shared/install: fix preset operations for non-service instantiated units Fixes https://github.com/coreos/ignition/issues/1064. --- src/shared/install.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/shared/install.c b/src/shared/install.c index b08dc241e0b30..0f21cdc3f7730 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -3050,20 +3050,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; }