@cryptotaxi247 / netdata-1 / commits / a33b13f66

Check for empty dimension id from a plugin (#17690)

Check for empty dimension or dimension creation failure and disable plugin

Stelios Fragkakis committed May 17, 2024 at 13:53 UTC a33b13f66791f0777053ba6aa6336823217ee8c6
1 file changed +4 -1
src/collectors/plugins.d/pluginsd_parser.c
+4 -1
@@ -433,7 +433,7 @@ static inline PARSER_RC pluginsd_dimension(char **words, size_t num_words, PARSE
433 RRDSET *st = pluginsd_require_scope_chart(parser, PLUGINSD_KEYWORD_DIMENSION, PLUGINSD_KEYWORD_CHART);
434 if(!st) return PLUGINSD_DISABLE_PLUGIN(parser, NULL, NULL);
435
436 - if (unlikely(!id))
436 + if (unlikely(!id || !*id))
437 return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DIMENSION, "missing dimension id");
438
439 long multiplier = 1;
@@ -461,6 +461,9 @@ static inline PARSER_RC pluginsd_dimension(char **words, size_t num_words, PARSE
461 options ? options : "");
462
463 RRDDIM *rd = rrddim_add(st, id, name, multiplier, divisor, rrd_algorithm_id(algorithm));
464 + if (unlikely(!rd))
465 + return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DIMENSION, "failed to create dimension");
466 +
467 int unhide_dimension = 1;
468
469 rrddim_option_clear(rd, RRDDIM_OPTION_DONT_DETECT_RESETS_OR_OVERFLOWS);