tests: Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed.

This commit is contained in:
practicalswift 2019-10-23 21:46:53 +00:00
parent c5ac7af779
commit db4bd32cc3
2 changed files with 12 additions and 8 deletions

View File

@ -12,6 +12,7 @@
#include <net.h> #include <net.h>
#include <primitives/block.h> #include <primitives/block.h>
#include <protocol.h> #include <protocol.h>
#include <pubkey.h>
#include <streams.h> #include <streams.h>
#include <undo.h> #include <undo.h>
#include <version.h> #include <version.h>
@ -23,6 +24,12 @@
#include <test/fuzz/fuzz.h> #include <test/fuzz/fuzz.h>
void initialize()
{
// Fuzzers using pubkey must hold an ECCVerifyHandle.
static const auto verify_handle = MakeUnique<ECCVerifyHandle>();
}
void test_one_input(const std::vector<uint8_t>& buffer) void test_one_input(const std::vector<uint8_t>& buffer)
{ {
CDataStream ds(buffer, SER_NETWORK, INIT_PROTO_VERSION); CDataStream ds(buffer, SER_NETWORK, INIT_PROTO_VERSION);

View File

@ -4,11 +4,9 @@
#include <test/fuzz/fuzz.h> #include <test/fuzz/fuzz.h>
#include <cstdint>
#include <unistd.h> #include <unistd.h>
#include <vector>
#include <pubkey.h>
#include <util/memory.h>
static bool read_stdin(std::vector<uint8_t>& data) static bool read_stdin(std::vector<uint8_t>& data)
{ {
@ -23,10 +21,8 @@ static bool read_stdin(std::vector<uint8_t>& data)
} }
// Default initialization: Override using a non-weak initialize(). // Default initialization: Override using a non-weak initialize().
__attribute__((weak)) __attribute__((weak)) void initialize()
void initialize()
{ {
const static auto verify_handle = MakeUnique<ECCVerifyHandle>();
} }
// This function is used by libFuzzer // This function is used by libFuzzer
@ -50,7 +46,8 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
// the main(...) function. // the main(...) function.
__attribute__((weak)) __attribute__((weak))
#endif #endif
int main(int argc, char **argv) int
main(int argc, char** argv)
{ {
initialize(); initialize();
#ifdef __AFL_INIT #ifdef __AFL_INIT