From: Mark Andrews Date: Tue, 11 Apr 2023 00:44:36 +0000 (+1000) Subject: Atomically increase rrn in add_other_data X-Git-Tag: v9.19.12~3^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6cf8a532d4f2536b4cc99ba8d3486416d794503c;p=thirdparty%2Fbind9.git Atomically increase rrn in add_other_data 'rrn' needs to be treated atomically as it updated from multiple threads. --- diff --git a/bin/tests/system/rpz/testlib/test-data.c b/bin/tests/system/rpz/testlib/test-data.c index 09067020901..16f5fbb6fa7 100644 --- a/bin/tests/system/rpz/testlib/test-data.c +++ b/bin/tests/system/rpz/testlib/test-data.c @@ -37,6 +37,7 @@ #include #include +#include #include #include "test-data.h" @@ -392,13 +393,13 @@ add_other_rr(trpz_result_t *node, const char *rrtype, const char *val, uint32_t ttl, int *modified) { trpz_rr_t nrec = { 0 }; size_t n; - static unsigned int rrn = 1; + static atomic_uint_fast32_t rrn = 1; *modified = 0; nrec.class = ns_c_in; nrec.ttl = ttl; - nrec.rrn = rrn++; + nrec.rrn = atomic_fetch_add_relaxed(&rrn, 1); if (!strcasecmp(rrtype, "A")) { uint32_t addr;