shared/install: fix preset operations for non-service instantiated units

Fixes https://github.com/coreos/ignition/issues/1064.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2020-08-22 12:00:19 +02:00
parent de8be28e03
commit 47ab95fe43
+5 -8
View File
@@ -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;
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;
}