chiark / gitweb /
logind: properly handle if two session with identical loginuids are attempted to...
[elogind.git] / src / pam-module.c
index dc7c00166e6ca35f1f313de3df236a9c57d93a9b..eba59f65f25837c64e146e43c1ba86b80f4725a6 100644 (file)
@@ -457,10 +457,12 @@ _public_ PAM_EXTERN int pam_sm_open_session(
                 goto finish;
         }
 
                 goto finish;
         }
 
-        r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL);
-        if (r != PAM_SUCCESS) {
-                pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
-                return r;
+        if (session_fd >= 0) {
+                r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL);
+                if (r != PAM_SUCCESS) {
+                        pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
+                        return r;
+                }
         }
 
         session_fd = -1;
         }
 
         session_fd = -1;