Fix a potential race condition when incrementing static counters. PiperOrigin-RevId: 773779138
diff --git a/fuzztest/internal/domains/protobuf_domain_impl.h b/fuzztest/internal/domains/protobuf_domain_impl.h index a54c6ea..0a71274 100644 --- a/fuzztest/internal/domains/protobuf_domain_impl.h +++ b/fuzztest/internal/domains/protobuf_domain_impl.h
@@ -15,6 +15,7 @@ #ifndef FUZZTEST_FUZZTEST_INTERNAL_DOMAINS_PROTOBUF_DOMAIN_IMPL_H_ #define FUZZTEST_FUZZTEST_INTERNAL_DOMAINS_PROTOBUF_DOMAIN_IMPL_H_ +#include <atomic> #include <cstddef> #include <cstdint> #include <functional> @@ -237,8 +238,8 @@ ProtoPolicy() : optional_policies_({{/*filter=*/IncludeAll<FieldDescriptor>(), /*value=*/OptionalPolicy::kWithNull}}) { - static int64_t next_id = 0; - id_ = next_id++; + ABSL_CONST_INIT static std::atomic<int64_t> next_id{0}; + id_ = next_id.fetch_add(1, std::memory_order_relaxed); } void SetOptionalPolicy(OptionalPolicy optional_policy) {