summaryrefslogtreecommitdiffstats
path: root/linux/SystemdMeter.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-11-16 16:50:08 +0100
committerChristian Göttsche <cgzones@googlemail.com>2020-11-17 13:06:31 +0100
commitf38af725c21e4beab01070ffe73180ca0549129e (patch)
treeded1a73be9b3acf5ac2339220ec606db050cb3f4 /linux/SystemdMeter.c
parentfec9af4e6fd7e45e4cb623a84c34b92d3e506b3f (diff)
Silence theoretical memory leak
In practice systemctl should never return multiple SystemState= lines.
Diffstat (limited to 'linux/SystemdMeter.c')
-rw-r--r--linux/SystemdMeter.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/linux/SystemdMeter.c b/linux/SystemdMeter.c
index 368d5cca..ef88275f 100644
--- a/linux/SystemdMeter.c
+++ b/linux/SystemdMeter.c
@@ -206,8 +206,10 @@ static void updateViaExec(void) {
while (fgets(lineBuffer, sizeof(lineBuffer), commandOutput)) {
if (String_startsWith(lineBuffer, "SystemState=")) {
char* newline = strchr(lineBuffer + strlen("SystemState="), '\n');
- if (newline)
+ if (newline) {
*newline = '\0';
+ }
+ free(systemState);
systemState = xStrdup(lineBuffer + strlen("SystemState="));
} else if (String_startsWith(lineBuffer, "NFailedUnits=")) {
nFailedUnits = strtoul(lineBuffer + strlen("NFailedUnits="), NULL, 10);

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