summaryrefslogtreecommitdiffstats
path: root/pcp
diff options
context:
space:
mode:
authorNathan Scott <nathans@redhat.com>2021-07-12 17:01:40 +1000
committerNathan Scott <nathans@redhat.com>2021-07-14 11:58:46 +1000
commit9cbee018775439d4296d9281698fdae56649b974 (patch)
treec1b35c0c210f162c3c051619e0173cb0179f7437 /pcp
parentbf853addc3e4b855cc8fb09a6558733d12548fbe (diff)
Additional pointer checks in dynamic meter code for Coverity
Diffstat (limited to 'pcp')
-rw-r--r--pcp/PCPDynamicMeter.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/pcp/PCPDynamicMeter.c b/pcp/PCPDynamicMeter.c
index ac69d5a7..2291167f 100644
--- a/pcp/PCPDynamicMeter.c
+++ b/pcp/PCPDynamicMeter.c
@@ -194,13 +194,15 @@ static void PCPDynamicMeter_parseFile(PCPDynamicMeters* meters, const char* path
meter = PCPDynamicMeter_new(meters, key+1);
} else if (!ok) {
; /* skip this one, we're looking for a new header */
- } else if (value && String_eq(key, "caption")) {
+ } else if (value && meter && String_eq(key, "caption")) {
char* caption = String_cat(value, ": ");
- free_and_xStrdup(&meter->super.caption, caption);
- free(caption);
- } else if (value && String_eq(key, "description")) {
+ if (caption) {
+ free_and_xStrdup(&meter->super.caption, caption);
+ free(caption);
+ }
+ } else if (value && meter && String_eq(key, "description")) {
free_and_xStrdup(&meter->super.description, value);
- } else if (value && String_eq(key, "type")) {
+ } else if (value && meter && String_eq(key, "type")) {
if (String_eq(config[1], "bar"))
meter->super.type = BAR_METERMODE;
else if (String_eq(config[1], "text"))
@@ -209,9 +211,9 @@ static void PCPDynamicMeter_parseFile(PCPDynamicMeters* meters, const char* path
meter->super.type = GRAPH_METERMODE;
else if (String_eq(config[1], "led"))
meter->super.type = LED_METERMODE;
- } else if (value && String_eq(key, "maximum")) {
+ } else if (value && meter && String_eq(key, "maximum")) {
meter->super.maximum = strtod(value, NULL);
- } else if (value) {
+ } else if (value && meter) {
PCPDynamicMeter_parseMetric(meters, meter, path, lineno, key, value);
}
String_freeArray(config);

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