1 Star 0 Fork 25

yueyaoqiang/procps-ng

forked from src-openEuler/procps-ng 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
openeuler-w-Fix-w-print-0-user-when-systemd-pam-is-not-install.patch 2.29 KB
一键复制 编辑 原始数据 按行查看 历史
From c0c707ac435d6318fa8d5542906599867877465a Mon Sep 17 00:00:00 2001
From: Chao Liu <liuchao173@huawei.com>
Date: Tue, 7 May 2024 07:20:34 +0000
Subject: [PATCH 2/2] w: Fix w print 0 user when systemd-pam is not
installed
Signed-off-by: SuperSix173 <liuchao173@huawei.com>
---
src/w.c | 53 ++++++++++++++++++++++++++---------------------------
1 file changed, 26 insertions(+), 27 deletions(-)
diff --git a/src/w.c b/src/w.c
index fd6e75f..8e30e5d 100644
--- a/src/w.c
+++ b/src/w.c
@@ -805,37 +805,36 @@ int main(int argc, char **argv)
printf(_(" IDLE WHAT\n"));
}
#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
- if (sd_booted() > 0) {
- char **sessions_list;
- int sessions;
- int i;
+ char **sessions_list;
+ int sessions = 0;
+ if (sd_booted() > 0)
sessions = sd_get_sessions (&sessions_list);
- if (sessions < 0 && sessions != -ENOENT)
- error(EXIT_FAILURE, -sessions, _("error getting sessions"));
-
- if (sessions >= 0) {
- for (int i = 0; i < sessions; i++) {
- char *name;
- int r;
-
- if ((r = sd_session_get_username(sessions_list[i], &name)) < 0)
- error(EXIT_FAILURE, -r, _("get user name failed"));
-
- if (user) {
- if (!strcmp(name, user))
- showinfo(sessions_list[i], name, NULL, longform,
- maxcmd, from, userlen, fromlen,
- ip_addresses, pids);
- } else {
- showinfo(sessions_list[i], name, NULL, longform, maxcmd,
- from, userlen, fromlen, ip_addresses, pids);
- }
- free(name);
- free(sessions_list[i]);
+
+ if (sessions < 0 && sessions != -ENOENT)
+ error(EXIT_FAILURE, -sessions, _("error getting sessions"));
+
+ if (sessions > 0) {
+ for (int i = 0; i < sessions; i++) {
+ char *name;
+ int r;
+
+ if ((r = sd_session_get_username(sessions_list[i], &name)) < 0)
+ error(EXIT_FAILURE, -r, _("get user name failed"));
+
+ if (user) {
+ if (!strcmp(name, user))
+ showinfo(sessions_list[i], name, NULL, longform,
+ maxcmd, from, userlen, fromlen,
+ ip_addresses, pids);
+ } else {
+ showinfo(sessions_list[i], name, NULL, longform, maxcmd,
+ from, userlen, fromlen, ip_addresses, pids);
}
- free(sessions_list);
+ free(name);
+ free(sessions_list[i]);
}
+ free(sessions_list);
} else {
#endif
#ifdef HAVE_UTMPX_H
--
2.33.0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yueyaoqiang/procps-ng.git
git@gitee.com:yueyaoqiang/procps-ng.git
yueyaoqiang
procps-ng
procps-ng
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385