chiark / gitweb /
logind: don's change dry-run boolean before we actually enqueue the operation
authorLennart Poettering <lennart@poettering.net>
Mon, 2 Oct 2017 14:09:24 +0000 (16:09 +0200)
committerSven Eden <yamakuzure@gmx.net>
Mon, 2 Oct 2017 14:09:24 +0000 (16:09 +0200)
Let's not affect change before the PK check.

src/login/logind-dbus.c

index 1769f221e02ee996c48be2e5091c4d1c6eca18ee..699290c8a31566bcf72b52590abc4f532d682463 100644 (file)
@@ -2079,6 +2079,7 @@ static int method_schedule_shutdown(sd_bus_message *message, void *userdata, sd_
         uint64_t elapse;
         char *type;
         int r;
+        bool dry_run = false;
 
         assert(m);
         assert(message);
@@ -2090,7 +2091,7 @@ static int method_schedule_shutdown(sd_bus_message *message, void *userdata, sd_
 
         if (startswith(type, "dry-")) {
                 type += 4;
-                m->shutdown_dry_run = true;
+                dry_run = true;
         }
 
         if (streq(type, "poweroff")) {
@@ -2134,6 +2135,8 @@ static int method_schedule_shutdown(sd_bus_message *message, void *userdata, sd_
                 return log_oom();
         }
 
+        m->shutdown_dry_run = dry_run;
+
         if (m->nologin_timeout_source) {
                 r = sd_event_source_set_time(m->nologin_timeout_source, elapse);
                 if (r < 0)