]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bus-unit-util: properly serialize EnvironmentFile= empty assignment
authorLennart Poettering <lennart@poettering.net>
Wed, 29 Nov 2017 10:33:26 +0000 (11:33 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 29 Nov 2017 11:34:12 +0000 (12:34 +0100)
In that case we need to generate an empty array.

src/shared/bus-unit-util.c

index 5e88866dc7ceb2ce0e263d2b67bb15b8cc30ace0..0cc3f991b3c92d019fe66c347a4fb0967029dd1f 100644 (file)
@@ -134,9 +134,12 @@ int bus_append_unit_property_assignment(sd_bus_message *m, const char *assignmen
 
         } else if (streq(field, "EnvironmentFile")) {
 
-                r = sd_bus_message_append(m, "sv", "EnvironmentFiles", "a(sb)", 1,
-                                          eq[0] == '-' ? eq + 1 : eq,
-                                          eq[0] == '-');
+                if (isempty(eq))
+                        r = sd_bus_message_append(m, "sv", "EnvironmentFiles", "a(sb)", 0);
+                else
+                        r = sd_bus_message_append(m, "sv", "EnvironmentFiles", "a(sb)", 1,
+                                                  eq[0] == '-' ? eq + 1 : eq,
+                                                  eq[0] == '-');
                 goto finish;
 
         } else if (STR_IN_SET(field, "AccuracySec", "RandomizedDelaySec", "RuntimeMaxSec")) {