From 8a1112141da7974de2757b40da5be2be648a2afd Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Mon, 1 Mar 2021 09:41:08 +0100 Subject: Fix a possible truncation of the intermediate strings in the SysArch meter --- SysArchMeter.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'SysArchMeter.c') 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]; -- cgit v1.2.3