Skip to content

Commit 58232e3

Browse files
fuzz: Avoid -fsanitize=integer warnings in fuzzing harnesses
1 parent 52d84a4 commit 58232e3

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

src/test/fuzz/crypto_chacha20_poly1305_aead.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,24 @@ FUZZ_TARGET(crypto_chacha20_poly1305_aead)
4545
assert(ok);
4646
},
4747
[&] {
48+
if (AdditionOverflow(seqnr_payload, static_cast<uint64_t>(1))) {
49+
return;
50+
}
4851
seqnr_payload += 1;
4952
aad_pos += CHACHA20_POLY1305_AEAD_AAD_LEN;
5053
if (aad_pos + CHACHA20_POLY1305_AEAD_AAD_LEN > CHACHA20_ROUND_OUTPUT) {
5154
aad_pos = 0;
55+
if (AdditionOverflow(seqnr_aad, static_cast<uint64_t>(1))) {
56+
return;
57+
}
5258
seqnr_aad += 1;
5359
}
5460
},
5561
[&] {
56-
seqnr_payload = fuzzed_data_provider.ConsumeIntegral<int>();
62+
seqnr_payload = fuzzed_data_provider.ConsumeIntegral<uint64_t>();
5763
},
5864
[&] {
59-
seqnr_aad = fuzzed_data_provider.ConsumeIntegral<int>();
65+
seqnr_aad = fuzzed_data_provider.ConsumeIntegral<uint64_t>();
6066
},
6167
[&] {
6268
is_encrypt = fuzzed_data_provider.ConsumeBool();

src/test/fuzz/pow.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ FUZZ_TARGET_INIT(pow, initialize_pow)
4343
current_block.nHeight = current_height;
4444
}
4545
if (fuzzed_data_provider.ConsumeBool()) {
46-
current_block.nTime = fixed_time + current_height * consensus_params.nPowTargetSpacing;
46+
const uint32_t seconds = current_height * consensus_params.nPowTargetSpacing;
47+
if (!AdditionOverflow(fixed_time, seconds)) {
48+
current_block.nTime = fixed_time + seconds;
49+
}
4750
}
4851
if (fuzzed_data_provider.ConsumeBool()) {
4952
current_block.nBits = fixed_bits;

src/test/fuzz/script.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,13 +154,13 @@ FUZZ_TARGET_INIT(script, initialize_script)
154154

155155
{
156156
WitnessUnknown witness_unknown_1{};
157-
witness_unknown_1.version = fuzzed_data_provider.ConsumeIntegral<int>();
157+
witness_unknown_1.version = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
158158
const std::vector<uint8_t> witness_unknown_program_1 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
159159
witness_unknown_1.length = witness_unknown_program_1.size();
160160
std::copy(witness_unknown_program_1.begin(), witness_unknown_program_1.end(), witness_unknown_1.program);
161161

162162
WitnessUnknown witness_unknown_2{};
163-
witness_unknown_2.version = fuzzed_data_provider.ConsumeIntegral<int>();
163+
witness_unknown_2.version = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
164164
const std::vector<uint8_t> witness_unknown_program_2 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
165165
witness_unknown_2.length = witness_unknown_program_2.size();
166166
std::copy(witness_unknown_program_2.begin(), witness_unknown_program_2.end(), witness_unknown_2.program);

src/test/fuzz/util.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ template <typename WeakEnumType, size_t size>
196196
},
197197
[&] {
198198
WitnessUnknown witness_unknown{};
199-
witness_unknown.version = fuzzed_data_provider.ConsumeIntegral<int>();
199+
witness_unknown.version = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
200200
const std::vector<uint8_t> witness_unknown_program_1 = fuzzed_data_provider.ConsumeBytes<uint8_t>(40);
201201
witness_unknown.length = witness_unknown_program_1.size();
202202
std::copy(witness_unknown_program_1.begin(), witness_unknown_program_1.end(), witness_unknown.program);

0 commit comments

Comments
 (0)