chiark / gitweb /
logind: close race on session state during logins
[elogind.git] / src / login / logind-session.c
index d4742e1134475671843a3ebe5de5a63254be825f..d7c074bdce8b4022bcbdf1675793b57fd944ff20 100644 (file)
@@ -915,10 +915,11 @@ void session_add_to_gc_queue(Session *s) {
 SessionState session_get_state(Session *s) {
         assert(s);
 
+        /* always check closing first */
         if (s->stopping || s->timer_event_source)
                 return SESSION_CLOSING;
 
-        if (s->scope_job)
+        if (s->scope_job || s->fifo_fd < 0)
                 return SESSION_OPENING;
 
         if (session_is_active(s))