chiark / gitweb /
systemd: fix argument ordering in UnsetAndSetEnvironment
[elogind.git] / src / core / dbus-manager.c
index e792fe7e28332638534691fc64641bd8772278b6..2fe9d193f6a79f1715676303a352a4e71befd9fb 100644 (file)
@@ -1357,18 +1357,18 @@ static int method_unset_and_set_environment(sd_bus *bus, sd_bus_message *message
         if (r < 0)
                 return r;
 
-        r = sd_bus_message_read_strv(message, &plus);
+        r = sd_bus_message_read_strv(message, &minus);
         if (r < 0)
                 return r;
 
-        r = sd_bus_message_read_strv(message, &minus);
+        r = sd_bus_message_read_strv(message, &plus);
         if (r < 0)
                 return r;
 
-        if (!strv_env_is_valid(plus))
-                return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid environment assignments");
         if (!strv_env_name_or_assignment_is_valid(minus))
                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid environment variable names or assignments");
+        if (!strv_env_is_valid(plus))
+                return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid environment assignments");
 
         r = manager_environment_add(m, minus, plus);
         if (r < 0)