Skip to content

Commit 85b575f

Browse files
MarcoFalkevijaydasmp
authored andcommitted
Merge bitcoin#22508: fuzz: replace every fuzzer-controlled while loop with a macro
214d905 fuzz: replace every fuzzer-controlled loop with a LIMITED_WHILE loop (Andrew Poelstra) Pull request description: Limits the number of iterations to 1000 rather than letting the fuzzer do millions or billions of iterations on a single core. ACKs for top commit: MarcoFalke: cr ACK 214d905 Tree-SHA512: 9741c32ccd126ea656e5c93371b7136eaa2f92dc9a490dd4d39642503b1a41174f3368245153e508c3b608fe37ab89800b67ada97b740e3b5a3728bb506429d3
1 parent 1549daa commit 85b575f

26 files changed

+31
-31
lines changed

src/test/fuzz/addrman.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ FUZZ_TARGET(addrman, .init = initialize_addrman)
250250
}
251251
}
252252
AddrManDeterministic& addr_man = *addr_man_ptr;
253-
while (fuzzed_data_provider.ConsumeBool()) {
253+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
254254
CallOneOf(
255255
fuzzed_data_provider,
256256
[&] {
@@ -270,7 +270,7 @@ FUZZ_TARGET(addrman, .init = initialize_addrman)
270270
},
271271
[&] {
272272
std::vector<CAddress> addresses;
273-
while (fuzzed_data_provider.ConsumeBool()) {
273+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
274274
const std::optional<CAddress> opt_address = ConsumeDeserializable<CAddress>(fuzzed_data_provider);
275275
if (!opt_address) {
276276
break;

src/test/fuzz/autofile.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ FUZZ_TARGET(autofile)
1818
FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
1919
FuzzedAutoFileProvider fuzzed_auto_file_provider = ConsumeAutoFile(fuzzed_data_provider);
2020
CAutoFile auto_file = fuzzed_auto_file_provider.open();
21-
while (fuzzed_data_provider.ConsumeBool()) {
21+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
2222
CallOneOf(
2323
fuzzed_data_provider,
2424
[&] {

src/test/fuzz/bloom_filter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ FUZZ_TARGET(bloom_filter)
2424
1.0 / fuzzed_data_provider.ConsumeIntegralInRange<unsigned int>(1, std::numeric_limits<unsigned int>::max()),
2525
fuzzed_data_provider.ConsumeIntegral<unsigned int>(),
2626
static_cast<unsigned char>(fuzzed_data_provider.PickValueInArray({BLOOM_UPDATE_NONE, BLOOM_UPDATE_ALL, BLOOM_UPDATE_P2PUBKEY_ONLY, BLOOM_UPDATE_MASK}))};
27-
while (fuzzed_data_provider.remaining_bytes() > 0) {
27+
LIMITED_WHILE(fuzzed_data_provider.remaining_bytes() > 0, 10000) {
2828
CallOneOf(
2929
fuzzed_data_provider,
3030
[&] {

src/test/fuzz/buffered_file.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ FUZZ_TARGET(buffered_file)
2929
}
3030
if (opt_buffered_file && fuzzed_file != nullptr) {
3131
bool setpos_fail = false;
32-
while (fuzzed_data_provider.ConsumeBool()) {
32+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
3333
CallOneOf(
3434
fuzzed_data_provider,
3535
[&] {

src/test/fuzz/chain.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ FUZZ_TARGET(chain)
3737
(void)CDiskBlockIndex{*disk_block_index};
3838
(void)disk_block_index->BuildSkip();
3939

40-
while (fuzzed_data_provider.ConsumeBool()) {
40+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
4141
const BlockStatus block_status = fuzzed_data_provider.PickValueInArray({
4242
BlockStatus::BLOCK_VALID_UNKNOWN,
4343
BlockStatus::BLOCK_VALID_RESERVED,

src/test/fuzz/coins_view.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ FUZZ_TARGET(coins_view, .init = initialize_coins_view)
5252
COutPoint random_out_point;
5353
Coin random_coin;
5454
CMutableTransaction random_mutable_transaction;
55-
while (fuzzed_data_provider.ConsumeBool()) {
55+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
5656
CallOneOf(
5757
fuzzed_data_provider,
5858
[&] {
@@ -119,7 +119,7 @@ FUZZ_TARGET(coins_view, .init = initialize_coins_view)
119119
[&] {
120120
CCoinsMapMemoryResource resource;
121121
CCoinsMap coins_map{0, SaltedOutpointHasher{/*deterministic=*/true}, CCoinsMap::key_equal{}, &resource};
122-
while (fuzzed_data_provider.ConsumeBool()) {
122+
LIMITED_WHILE (fuzzed_data_provider.ConsumeBool(), 10000) {
123123
CCoinsCacheEntry coins_cache_entry;
124124
coins_cache_entry.flags = fuzzed_data_provider.ConsumeIntegral<unsigned char>();
125125
if (fuzzed_data_provider.ConsumeBool()) {

src/test/fuzz/connman.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ FUZZ_TARGET(connman, .init = initialize_connman)
4848
CNode random_node = ConsumeNode(fuzzed_data_provider);
4949
CSubNet random_subnet;
5050
std::string random_string;
51-
while (fuzzed_data_provider.ConsumeBool()) {
51+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
5252
CallOneOf(
5353
fuzzed_data_provider,
5454
[&] {

src/test/fuzz/crypto_aes256.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ FUZZ_TARGET(crypto_aes256)
1919
AES256Encrypt encrypt{key.data()};
2020
AES256Decrypt decrypt{key.data()};
2121

22-
while (fuzzed_data_provider.ConsumeBool()) {
22+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
2323
const std::vector<uint8_t> plaintext = ConsumeFixedLengthByteVector(fuzzed_data_provider, AES_BLOCKSIZE);
2424
std::vector<uint8_t> ciphertext(AES_BLOCKSIZE);
2525
encrypt.Encrypt(ciphertext.data(), plaintext.data());

src/test/fuzz/crypto_aes256cbc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ FUZZ_TARGET(crypto_aes256cbc)
2121
AES256CBCEncrypt encrypt{key.data(), iv.data(), pad};
2222
AES256CBCDecrypt decrypt{key.data(), iv.data(), pad};
2323

24-
while (fuzzed_data_provider.ConsumeBool()) {
24+
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
2525
const std::vector<uint8_t> plaintext = ConsumeRandomLengthByteVector(fuzzed_data_provider);
2626
std::vector<uint8_t> ciphertext(plaintext.size() + AES_BLOCKSIZE);
2727
const int encrypt_ret = encrypt.Encrypt(plaintext.data(), plaintext.size(), ciphertext.data());

src/test/fuzz/crypto_chacha20.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ FUZZ_TARGET(crypto_chacha20)
2020
const auto key = ConsumeFixedLengthByteVector<std::byte>(fuzzed_data_provider, ChaCha20::KEYLEN);
2121
ChaCha20 chacha20{key};
2222

23-
while (fuzzed_data_provider.ConsumeBool()) {
23+
LIMITED_WHILE (fuzzed_data_provider.ConsumeBool(),1000) {
2424
CallOneOf(
2525
fuzzed_data_provider,
2626
[&] {

0 commit comments

Comments
 (0)