diff options
author | Benny Baumann <BenBE@geshi.org> | 2021-03-01 09:41:08 +0100 |
---|---|---|
committer | Benny Baumann <BenBE@geshi.org> | 2021-03-01 09:56:07 +0100 |
commit | 8a1112141da7974de2757b40da5be2be648a2afd (patch) | |
tree | f3b46d0bf2b0b7bf071ff22f243f32a6d0671a04 /SysArchMeter.c | |
parent | 7b48fec59a3951c497b2c875da816918459507a0 (diff) |
Fix a possible truncation of the intermediate strings in the SysArch meter
Diffstat (limited to 'SysArchMeter.c')
-rw-r--r-- | SysArchMeter.c | 11 |
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]; |