Page MenuHomePhabricator

fuzz: Add process_messages harness
ClosedPublic

Authored by Fabien on Nov 12 2020, 14:31.

Details

Reviewers
PiRK
Group Reviewers
Restricted Project
Commits
rABCa9c2983523b2: fuzz: Add process_messages harness
Summary

Backport of core PR18521.
Depends on D8374.

Test Plan
ninja bitcoin-fuzzers
./src/test/fuzz/process_messages <path_to_corpus>

Event Timeline

Fabien requested review of this revision.Nov 12 2020, 14:31

Tail of the build log:

[337/492] Linking C executable src/secp256k1/verify-bench
[338/492] Linking C executable src/secp256k1/recover-bench
[339/492] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[340/492] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[341/492] Linking CXX static library src/libscript.a
[342/492] Linking CXX static library src/libcommon.a
[343/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/net.cpp.o 
/usr/bin/ccache /usr/bin/c++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wshadow -Wredundant-decls -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++14 -MD -MT src/test/CMakeFiles/testutil.dir/util/net.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/net.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/net.cpp.o -c ../../src/test/util/net.cpp
In file included from ../../src/test/util/net.cpp:5:
../../src/./test/util/net.h: In member function ‘void ConnmanTestMsg::ProcessMessagesOnce(const Config&, CNode&)’:
../../src/./test/util/net.h:24:65: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
     void ProcessMessagesOnce(const Config &config, CNode &node) {
                                                                 ^
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
../../src/test/util/net.cpp: In member function ‘void ConnmanTestMsg::NodeReceiveMsgBytes(const Config&, CNode&, const char*, unsigned int, bool&) const’:
../../src/test/util/net.cpp:13:58: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
                                          bool &complete) const {
                                                          ^~~~~
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
../../src/test/util/net.cpp: In member function ‘bool ConnmanTestMsg::ReceiveMsgFrom(const Config&, CNode&, CSerializedNetMsg&) const’:
../../src/test/util/net.cpp:35:65: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
                                     CSerializedNetMsg &ser_msg) const {
                                                                 ^~~~~
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
cc1plus: all warnings being treated as errors
[344/492] Linking CXX executable src/bitcoin-cli
[345/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[346/492] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[347/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[348/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[349/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[350/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[351/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[352/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[353/492] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[354/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[355/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[356/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
ninja: build stopped: subcommand failed.
Build build-diff failed with exit code 1

Tail of the build log:

[327/442] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[328/442] Linking CXX executable src/bitcoin-cli
[329/442] Linking C executable src/secp256k1/sign-bench
[330/442] Linking C executable src/secp256k1/verify-bench
[331/442] Linking C executable src/secp256k1/recover-bench
[332/442] Linking CXX executable src/bitcoin-tx
[333/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[334/442] Building CXX object src/CMakeFiles/server.dir/dummywallet.cpp.o
[335/442] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[336/442] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[337/442] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[338/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[339/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[340/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/net.cpp.o 
/usr/bin/ccache /usr/bin/c++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wshadow -Wredundant-decls -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++14 -MD -MT src/test/CMakeFiles/testutil.dir/util/net.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/net.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/net.cpp.o -c ../../src/test/util/net.cpp
In file included from ../../src/test/util/net.cpp:5:
../../src/./test/util/net.h: In member function ‘void ConnmanTestMsg::ProcessMessagesOnce(const Config&, CNode&)’:
../../src/./test/util/net.h:24:65: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
     void ProcessMessagesOnce(const Config &config, CNode &node) {
                                                                 ^
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
../../src/test/util/net.cpp: In member function ‘void ConnmanTestMsg::NodeReceiveMsgBytes(const Config&, CNode&, const char*, unsigned int, bool&) const’:
../../src/test/util/net.cpp:13:58: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
                                          bool &complete) const {
                                                          ^~~~~
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
../../src/test/util/net.cpp: In member function ‘bool ConnmanTestMsg::ReceiveMsgFrom(const Config&, CNode&, CSerializedNetMsg&) const’:
../../src/test/util/net.cpp:35:65: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
                                     CSerializedNetMsg &ser_msg) const {
                                                                 ^~~~~
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
cc1plus: all warnings being treated as errors
[341/442] Building CXX object src/CMakeFiles/server.dir/txdb.cpp.o
[342/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[343/442] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[344/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[345/442] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[346/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[347/442] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[348/442] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[349/442] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[350/442] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[351/442] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[352/442] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[353/442] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
ninja: build stopped: subcommand failed.
Build build-without-wallet failed with exit code 1

Tail of the build log:

[335/492] Linking C executable src/secp256k1/internal-bench
[336/492] Linking C executable src/secp256k1/sign-bench
[337/492] Linking C executable src/secp256k1/verify-bench
[338/492] Linking C executable src/secp256k1/recover-bench
[339/492] Installing component secp256k1
-- Install configuration: "Debug"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[340/492] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[341/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/net.cpp.o 
/usr/bin/ccache /usr/bin/c++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DBUILD_BITCOIN_INTERNAL -DDEBUG -DDEBUG_LOCKORDER -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -O0 -fPIC -fvisibility=hidden   -g3 -ftrapv -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wshadow -Wredundant-decls -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++14 -MD -MT src/test/CMakeFiles/testutil.dir/util/net.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/net.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/net.cpp.o -c ../../src/test/util/net.cpp
In file included from ../../src/test/util/net.cpp:5:
../../src/./test/util/net.h: In member function ‘void ConnmanTestMsg::ProcessMessagesOnce(const Config&, CNode&)’:
../../src/./test/util/net.h:24:65: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
     void ProcessMessagesOnce(const Config &config, CNode &node) {
                                                                 ^
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
../../src/test/util/net.cpp: In member function ‘void ConnmanTestMsg::NodeReceiveMsgBytes(const Config&, CNode&, const char*, unsigned int, bool&) const’:
../../src/test/util/net.cpp:13:58: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
                                          bool &complete) const {
                                                          ^~~~~
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
../../src/test/util/net.cpp: In member function ‘bool ConnmanTestMsg::ReceiveMsgFrom(const Config&, CNode&, CSerializedNetMsg&) const’:
../../src/test/util/net.cpp:35:65: error: declaration of ‘config’ shadows a member of ‘ConnmanTestMsg’ [-Werror=shadow]
                                     CSerializedNetMsg &ser_msg) const {
                                                                 ^~~~~
In file included from ../../src/./test/util/net.h:8,
                 from ../../src/test/util/net.cpp:5:
../../src/./net.h:430:19: note: shadowed declaration is here
     const Config *config;
                   ^~~~~~
cc1plus: all warnings being treated as errors
[342/492] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[343/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[344/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[345/492] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[346/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[347/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[348/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[349/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[350/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[351/492] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[352/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[353/492] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[354/492] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
ninja: build stopped: subcommand failed.
Build build-debug failed with exit code 1
Fabien planned changes to this revision.Nov 12 2020, 15:04

CConman already has a config member, use it.

This revision is now accepted and ready to land.Nov 13 2020, 15:46
This revision was automatically updated to reflect the committed changes.