diff options
author | Nathan Scott <nathans@redhat.com> | 2021-07-12 17:01:40 +1000 |
---|---|---|
committer | Nathan Scott <nathans@redhat.com> | 2021-07-14 11:58:46 +1000 |
commit | 9cbee018775439d4296d9281698fdae56649b974 (patch) | |
tree | c1b35c0c210f162c3c051619e0173cb0179f7437 /pcp | |
parent | bf853addc3e4b855cc8fb09a6558733d12548fbe (diff) |
Additional pointer checks in dynamic meter code for Coverity
Diffstat (limited to 'pcp')
-rw-r--r-- | pcp/PCPDynamicMeter.c | 16 |
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); |