summaryrefslogtreecommitdiffstats
path: root/SysArchMeter.c
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2021-03-01 09:41:08 +0100
committerBenny Baumann <BenBE@geshi.org>2021-03-01 09:56:07 +0100
commit8a1112141da7974de2757b40da5be2be648a2afd (patch)
treef3b46d0bf2b0b7bf071ff22f243f32a6d0671a04 /SysArchMeter.c
parent7b48fec59a3951c497b2c875da816918459507a0 (diff)
Fix a possible truncation of the intermediate strings in the SysArch meter
Diffstat (limited to 'SysArchMeter.c')
-rw-r--r--SysArchMeter.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/SysArchMeter.c b/SysArchMeter.c
index 4da91007..b371acc7 100644
--- a/SysArchMeter.c
+++ b/SysArchMeter.c
@@ -62,11 +62,18 @@ static void parseOSRelease(char* buffer, size_t bufferLen) {
}
static void SysArchMeter_updateValues(ATTR_UNUSED Meter* this, char* buffer, size_t size) {
- static char savedString[128] = {'\0'};
+ static struct utsname uname_info;
+
+ static char savedString[
+ /* uname structure fields - manpages recommend sizeof */
+ sizeof(uname_info.sysname) +
+ sizeof(uname_info.release) +
+ sizeof(uname_info.machine) +
+ 16/*markup*/ +
+ 128/*distro*/] = {'\0'};
static bool loaded_data = false;
if (!loaded_data) {
- struct utsname uname_info;
int uname_result = uname(&uname_info);
char distro[128];

© 2014-2024 Faster IT GmbH | imprint | privacy policy