aboutsummaryrefslogtreecommitdiff
path: root/ci/test/01_base_install.sh
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2023-08-03 17:16:46 +0100
committerfanquake <fanquake@gmail.com>2023-08-03 17:32:46 +0100
commit61849f0464f15f92814cd7408023a86e9c32567d (patch)
treeab688c33eaf92d0cb529fec617e5ab700853f4a5 /ci/test/01_base_install.sh
parent7c66a4b6109c01b79979128ef23e63fc733f89ba (diff)
parent025fda0a76893d09d19ec9a6c0ba86ad11c466f7 (diff)
downloadbitcoin-61849f0464f15f92814cd7408023a86e9c32567d.tar.xz
Merge bitcoin/bitcoin#27918: fuzz: addrman, avoid `ConsumeDeserializable` when possible
025fda0a76893d09d19ec9a6c0ba86ad11c466f7 fuzz: addrman, avoid `ConsumeDeserializable` when possible (brunoerg) Pull request description: Using specific functions like `ConsumeService`, `ConsumeAddress` and `ConsumeNetAddr` may be more effective than using `ConsumeDeserializable`. They always return some value while `ConsumeDeserializable` may return `std::nullopt`. E.g.: In this part of the code, if `op_net_addr` is `std::nullopt`, we basically generated the addresses (if so) unnecessarily, because we won't be able to use them: ```cpp std::vector<CAddress> addresses; LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) { const std::optional<CAddress> opt_address = ConsumeDeserializable<CAddress>(fuzzed_data_provider); if (!opt_address) { break; } addresses.push_back(*opt_address); } const std::optional<CNetAddr> opt_net_addr = ConsumeDeserializable<CNetAddr>(fuzzed_data_provider); if (opt_net_addr) { addr_man.Add(addresses, *opt_net_addr, std::chrono::seconds{ConsumeTime(fuzzed_data_provider, 0, 100000000)}); } ``` Also, if we are not calling `Add` effectively, it would also be affect other functions that may "depend" on it. ACKs for top commit: dergoegge: Code review ACK 025fda0a76893d09d19ec9a6c0ba86ad11c466f7 Tree-SHA512: 02450bec0b084c15ba0cd1cbdfbac067c8fea4ccf27be0c86d54e020f029a6c749a16d8e0558f9d6d35a7ca9db8916f180c872f09474702b5591129e9be0d192
Diffstat (limited to 'ci/test/01_base_install.sh')
0 files changed, 0 insertions, 0 deletions