From 600cc2dff859aac525d62000316d957846da4a66 Mon Sep 17 00:00:00 2001
From: Chao Liu <liuchao173@huawei.com>
Date: Tue, 7 May 2024 03:42:34 +0000
Subject: [PATCH 1/2] uptime: Fix uptime return 0 user when systemd-pam is not
 installed

When systemd-pam is not installed, systemd won't create files in /run/systemd/sessions/ and sd_get_sessions will return 0. However, the actual number of users is not 0. When sd_get_sessions return 0, uptime should use getutxent for statistics.
---
 library/uptime.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/library/uptime.c b/library/uptime.c
index 52720cbc..0db38ee5 100644
--- a/library/uptime.c
+++ b/library/uptime.c
@@ -71,7 +71,9 @@ PROCPS_EXPORT int procps_users(void)
 
 #if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
     if (sd_booted() > 0)
-      return sd_get_sessions(NULL);
+        numuser = sd_get_sessions(NULL);
+    if (numuser > 0)
+        return numuser;
 #endif
 
     setutent();
-- 
2.33.0

