diff options
author | Costa Tsaousis <costa@netdata.cloud> | 2024-01-11 19:57:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-11 19:57:17 +0200 |
commit | 989c856c5bd11c5c1c42b587541858ee992a1a5b (patch) | |
tree | 9466bccdd3572dcb63584edcacd43e7b99329b82 /database | |
parent | 2165279a87314fb74e8c4de735231a78de73aa54 (diff) |
Fix sanitizer errors (#16759)
* fix sanitizer errors in logs.c
* fix sanitizer errors in rrdlabels.c
* cleanup sanitizer exceptions
Diffstat (limited to 'database')
-rw-r--r-- | database/rrdlabels.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/database/rrdlabels.c b/database/rrdlabels.c index c3ab51e226..d84d417146 100644 --- a/database/rrdlabels.c +++ b/database/rrdlabels.c @@ -694,11 +694,6 @@ static RRDLABEL *rrdlabels_find_label_with_key_unsafe(RRDLABELS *labels, RRDLABE // ---------------------------------------------------------------------------- // rrdlabels_add() -/* - * FIXME: Attribute added because address sanitizer reports an issue when - * running the agent with `-W unittest`. -*/ -__attribute__((no_sanitize("address"))) static void labels_add_already_sanitized(RRDLABELS *labels, const char *key, const char *value, RRDLABEL_SRC ls) { RRDLABEL *new_label = add_label_name_value(key, value); @@ -715,10 +710,13 @@ static void labels_add_already_sanitized(RRDLABELS *labels, const char *key, con if(*PValue) { new_ls |= RRDLABEL_FLAG_OLD; + *((RRDLABEL_SRC *)PValue) = new_ls; + delete_label(new_label); } else { new_ls |= RRDLABEL_FLAG_NEW; + *((RRDLABEL_SRC *)PValue) = new_ls; RRDLABEL *old_label_with_same_key = rrdlabels_find_label_with_key_unsafe(labels, new_label); if (old_label_with_same_key) { @@ -728,7 +726,6 @@ static void labels_add_already_sanitized(RRDLABELS *labels, const char *key, con } labels->version++; - *((RRDLABEL_SRC *)PValue) = new_ls; size_t mem_after_judyl = JudyLMemUsed(labels->JudyL); STATS_PLUS_MEMORY(&dictionary_stats_category_rrdlabels, 0, mem_after_judyl - mem_before_judyl, 0); @@ -1470,9 +1467,12 @@ static int rrdlabels_unittest_double_check() rrdlabels_add(labels, "key1", "value1", RRDLABEL_SRC_CONFIG); ret += rrdlabels_unittest_expect_value(labels, "key1", "value1", RRDLABEL_FLAG_NEW); - rrdlabels_add(labels, "key1", "value2", RRDLABEL_SRC_CONFIG); + rrdlabels_add(labels, "key1", "value2", RRDLABEL_SRC_K8S); ret += !rrdlabels_unittest_expect_value(labels, "key1", "value2", RRDLABEL_FLAG_OLD); + rrdlabels_add(labels, "key1", "value3", RRDLABEL_SRC_ACLK); + ret += !rrdlabels_unittest_expect_value(labels, "key1", "value3", RRDLABEL_FLAG_OLD); + ret += (rrdlabels_entries(labels) != 1); rrdlabels_destroy(labels); |