summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@netdata.cloud>2022-07-18 16:04:53 +0300
committerCosta Tsaousis <costa@netdata.cloud>2022-07-18 16:04:53 +0300
commit497b6814b3ec78de073476211a0de94b5f9c1627 (patch)
treed346c484015bf48e78544c326f3a71be8a8df1f3
parentfad4dda934189fae797c549a24f5eaed3cab4909 (diff)
empty values set to "[none]"; fix labels unit test to reflect that
-rw-r--r--database/rrdlabels.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/database/rrdlabels.c b/database/rrdlabels.c
index b7fcf0508e..18ea767b05 100644
--- a/database/rrdlabels.c
+++ b/database/rrdlabels.c
@@ -447,11 +447,16 @@ static size_t rrdlabels_sanitize(unsigned char *dst, const unsigned char *src, s
// check if dst is all underscores and empty it if it is
d = dst;
while(*d == '_') d++;
- if(!*d) {
+ if(unlikely(*d == '\0')) {
*dst = '\0';
mblen = 0;
}
+ if(unlikely(*dst == '\0')) {
+ strncpyz((char *)dst, empty, dst_size);
+ return strlen((char *)dst);
+ }
+
return mblen;
}
@@ -460,7 +465,7 @@ static inline size_t rrdlabels_sanitize_name(char *dst, const char *src, size_t
}
static inline size_t rrdlabels_sanitize_value(char *dst, const char *src, size_t dst_size) {
- return rrdlabels_sanitize((unsigned char *)dst, (const unsigned char *)src, dst_size, label_values_char_map, 1, "[unset]");
+ return rrdlabels_sanitize((unsigned char *)dst, (const unsigned char *)src, dst_size, label_values_char_map, 1, "[none]");
}
// ----------------------------------------------------------------------------
@@ -916,7 +921,7 @@ int rrdlabels_to_buffer(DICTIONARY *labels, BUFFER *wb, const char *before_each,
.between_them = between_them,
.count = 0
};
- return dictionary_sorted_walkthrough_read(labels, label_to_buffer_callback, (void *)&tmp);
+ return dictionary_walkthrough_read(labels, label_to_buffer_callback, (void *)&tmp);
}
static int chart_label_store_to_sql_callback(const char *name, const char *value, RRDLABEL_SRC ls, void *data) {
@@ -1029,12 +1034,12 @@ int rrdlabels_unittest_add_pairs() {
errors += rrdlabels_unittest_add_a_pair("tag:a", "tag", "a");
// test empty values
- errors += rrdlabels_unittest_add_a_pair("tag", "tag", "");
- errors += rrdlabels_unittest_add_a_pair("tag:", "tag", "");
- errors += rrdlabels_unittest_add_a_pair("tag:\"\"", "tag", "");
- errors += rrdlabels_unittest_add_a_pair("tag:''", "tag", "");
- errors += rrdlabels_unittest_add_a_pair("tag:\r\n", "tag", "");
- errors += rrdlabels_unittest_add_a_pair("tag\r\n", "tag", "");
+ errors += rrdlabels_unittest_add_a_pair("tag", "tag", "[none]");
+ errors += rrdlabels_unittest_add_a_pair("tag:", "tag", "[none]");
+ errors += rrdlabels_unittest_add_a_pair("tag:\"\"", "tag", "[none]");
+ errors += rrdlabels_unittest_add_a_pair("tag:''", "tag", "[none]");
+ errors += rrdlabels_unittest_add_a_pair("tag:\r\n", "tag", "[none]");
+ errors += rrdlabels_unittest_add_a_pair("tag\r\n", "tag", "[none]");
// test UTF-8 in values
errors += rrdlabels_unittest_add_a_pair("tag: country:Ελλάδα", "tag", "country:Ελλάδα");
@@ -1112,7 +1117,7 @@ int rrdlabels_unittest_sanitize_value(const char *src, const char *expected) {
int rrdlabels_unittest_sanitization() {
int errors = 0;
- errors += rrdlabels_unittest_sanitize_value("", "");
+ errors += rrdlabels_unittest_sanitize_value("", "[none]");
errors += rrdlabels_unittest_sanitize_value("1", "1");
errors += rrdlabels_unittest_sanitize_value(" hello world ", "hello world");