1 Star 0 Fork 25

EulerOSWander/procps-ng

forked from src-openEuler/procps-ng 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
backport-0015-top-In-the-bye_bye-function-replace-fputs-with-the-w.patch 1.04 KB
一键复制 编辑 原始数据 按行查看 历史
EulerOSWander 提交于 2021-06-30 17:37 . sync upstream patches
From 0bf15c004db6a3342703a3c420a5692e376c457d Mon Sep 17 00:00:00 2001
From: Shaohua Zhan <shaohua.zhan@windriver.com>
Date: Thu, 3 Dec 2020 10:24:09 +0800
Subject: [PATCH] top: In the bye_bye function, replace fputs with the write
interface.
When top calls malloc, if a signal is received, it will
call sig_endpgm to process the signal. In the bye_bye function, if the
-b option is enable, the Batch variable is set, the fputs function
will calls malloc at the same time. The malloc function is not reentrant, so
it will cause the program to crash.
Signed-off-by: Shaohua Zhan <shaohua.zhan@windriver.com>
---
top/top.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/top/top.c b/top/top.c
index 2ec6357..eb62001 100644
--- a/top/top.c
+++ b/top/top.c
@@ -571,7 +571,9 @@ static void bye_bye (const char *str) {
fputs(str, stderr);
exit(EXIT_FAILURE);
}
- if (Batch) fputs("\n", stdout);
+ if (Batch) {
+ write(fileno(stdout), "\n", sizeof("\n"));
+ }
exit(EXIT_SUCCESS);
} // end: bye_bye
--
1.8.3.1
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/euleroswander/procps-ng.git
git@gitee.com:euleroswander/procps-ng.git
euleroswander
procps-ng
procps-ng
master

搜索帮助