]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
install: when enabling a template unit without DefaultInstance= nor specified instanc... 10954/head
authorLennart Poettering <lennart@poettering.net>
Tue, 27 Nov 2018 12:50:37 +0000 (13:50 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 28 Nov 2018 07:43:47 +0000 (08:43 +0100)
Previously, we'd link the unit file into /etc in this case, but that
should only be done if the unit file is not in the search path anyway,
and this is already done implicitly anyway for all enabled unit files,
hence no reason to duplicate this here.

Fixes: #10253
src/shared/install.c

index 735e1f5b0e09044a3e7453e870887f314327fa2f..28e07a23a55b9ee15e4a201480f9dc98851edb65 100644 (file)
@@ -1752,12 +1752,16 @@ static int install_info_symlink_wants(
         if (strv_isempty(list))
                 return 0;
 
-        if (unit_name_is_valid(i->name, UNIT_NAME_TEMPLATE) && i->default_instance) {
+        if (unit_name_is_valid(i->name, UNIT_NAME_TEMPLATE)) {
                 UnitFileInstallInfo instance = {
                         .type = _UNIT_FILE_TYPE_INVALID,
                 };
                 _cleanup_free_ char *path = NULL;
 
+                /* If this is a template, and we have no instance, don't do anything */
+                if (!i->default_instance)
+                        return 1;
+
                 r = unit_name_replace_instance(i->name, i->default_instance, &buf);
                 if (r < 0)
                         return r;