Skip to content

Commit 6154291

Browse files
author
MarcoFalke
committed
Merge #21617: fuzz: Fix uninitialized read in i2p test
3333375 fuzz: Fix uninitialized read in test (MarcoFalke) Pull request description: Can be tested with: ``` ./test/fuzz/test_runner.py -l DEBUG --valgrind ../btc_qa_assets/fuzz_seed_corpus/ i2p ``` ``` ==22582== Conditional jump or move depends on uninitialised value(s) ==22582== at 0x6BB2D8: __sanitizer_cov_trace_const_cmp1 (in /tmp/bitcoin-core/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz) ==22582== by 0xB305DB: ConnectSocketDirectly(CService const&, Sock const&, int, bool) (netbase.cpp:570) ==22582== by 0x8AAA5D: i2p::sam::Session::Hello() const (i2p.cpp:284) ==22582== by 0x8A6FA0: i2p::sam::Session::CreateIfNotCreatedAlready() (i2p.cpp:352) ==22582== by 0x8A6742: i2p::sam::Session::Listen(i2p::Connection&) (i2p.cpp:134) ==22582== by 0x7A6C42: i2p_fuzz_target(Span<unsigned char const>) (i2p.cpp:37) ACKs for top commit: sipa: utACK 3333375 vasild: ACK 3333375 Tree-SHA512: 36073582b26b541324b3e55f3fd4a44abf89cb3081f36d361525daf8c27602fbc25f736510ec30df7cb4ca0c4e395e8d8a60f531bf6af358b5a3e65dbabf72c0
2 parents c0160ea + 3333375 commit 6154291

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/test/fuzz/util.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
#include <util/rbf.h>
88
#include <version.h>
99

10+
bool FuzzedSock::Wait(std::chrono::milliseconds timeout, Event requested, Event* occurred ) const
11+
{
12+
if (!m_fuzzed_data_provider.ConsumeBool()) {
13+
return false;
14+
}
15+
if (occurred) *occurred = 0;
16+
return true;
17+
}
1018

1119
void FillNode(FuzzedDataProvider& fuzzed_data_provider, CNode& node, bool init_version) noexcept
1220
{

src/test/fuzz/util.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -738,12 +738,10 @@ class FuzzedSock : public Sock
738738
return 0;
739739
}
740740

741-
bool Wait(std::chrono::milliseconds timeout, Event requested, Event* occurred = nullptr) const override
742-
{
743-
return m_fuzzed_data_provider.ConsumeBool();
744-
}
741+
bool Wait(std::chrono::milliseconds timeout, Event requested, Event* occurred = nullptr) const override;
745742

746-
bool IsConnected(std::string& errmsg) const override {
743+
bool IsConnected(std::string& errmsg) const override
744+
{
747745
if (m_fuzzed_data_provider.ConsumeBool()) {
748746
return true;
749747
}

0 commit comments

Comments
 (0)