Skip to content

Commit 45a1c3a

Browse files
FuzzTest Teamcopybara-github
authored andcommitted
Fix a potential race condition when incrementing static counters.
PiperOrigin-RevId: 773779138
1 parent 6c64b55 commit 45a1c3a

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

fuzztest/internal/domains/protobuf_domain_impl.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#ifndef FUZZTEST_FUZZTEST_INTERNAL_DOMAINS_PROTOBUF_DOMAIN_IMPL_H_
1616
#define FUZZTEST_FUZZTEST_INTERNAL_DOMAINS_PROTOBUF_DOMAIN_IMPL_H_
1717

18+
#include <atomic>
1819
#include <cstddef>
1920
#include <cstdint>
2021
#include <functional>
@@ -237,8 +238,8 @@ class ProtoPolicy {
237238
ProtoPolicy()
238239
: optional_policies_({{/*filter=*/IncludeAll<FieldDescriptor>(),
239240
/*value=*/OptionalPolicy::kWithNull}}) {
240-
static int64_t next_id = 0;
241-
id_ = next_id++;
241+
ABSL_CONST_INIT static std::atomic<int64_t> next_id{0};
242+
id_ = next_id.fetch_add(1, std::memory_order_relaxed);
242243
}
243244

244245
void SetOptionalPolicy(OptionalPolicy optional_policy) {

0 commit comments

Comments
 (0)