From: Zbigniew Jędrzejewski-Szmek Date: Sat, 22 Aug 2020 09:58:15 +0000 (+0200) Subject: shared/install: fix preset operations for non-service instantiated units X-Git-Tag: v247-rc1~374^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=47ab95fe4315b3f7ee5a3694460a744bb88c52fd;p=thirdparty%2Fsystemd.git shared/install: fix preset operations for non-service instantiated units Fixes https://github.com/coreos/ignition/issues/1064. --- diff --git a/src/shared/install.c b/src/shared/install.c index b08dc241e0b..0f21cdc3f77 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; }