36 lines
1.0 KiB
Diff
36 lines
1.0 KiB
Diff
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
|
|
|