mirror of
https://github.com/monero-project/monero.git
synced 2025-12-05 20:40:22 -08:00
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Add macro definition for fuzzers Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Fix FuzzedDataProvider header missing problem Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Add README Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Provide static FuzzedDataProvider.h Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Update and enhance fuzzer Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Activate UBSan Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Fix fuzz target retrieval Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Remove bias selector and fix protocol lifespan Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Drop SIGALARM handling and fix bug on selectors Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Fix rpc request changes Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Add a new fuzzer profile that catch all expcetions Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Fix typo Signed-off-by: Arthur Chan <arthur.chan@adalogics.com> Add warning Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
#pragma once
|
|
#include "crypto/hash.h"
|
|
#include "rpc/core_rpc_server.h"
|
|
#include <fuzzer/FuzzedDataProvider.h>
|
|
|
|
// Define templates for dummy protocol object
|
|
template class nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core>>;
|
|
|
|
struct DummyProtocol : public cryptonote::i_cryptonote_protocol {
|
|
public:
|
|
bool is_synchronized() const;
|
|
bool relay_transactions(cryptonote::NOTIFY_NEW_TRANSACTIONS::request&, const boost::uuids::uuid&, epee::net_utils::zone, cryptonote::relay_method);
|
|
bool relay_block(cryptonote::NOTIFY_NEW_FLUFFY_BLOCK::request&, cryptonote::cryptonote_connection_context&);
|
|
};
|
|
|
|
struct RpcServerBundle {
|
|
std::unique_ptr<cryptonote::t_cryptonote_protocol_handler<cryptonote::core>> proto_handler;
|
|
std::unique_ptr<nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core>>> dummy_p2p;
|
|
std::unique_ptr<cryptonote::core_rpc_server> rpc;
|
|
};
|
|
|
|
struct CoreEnv {
|
|
std::unique_ptr<DummyProtocol> protocol;
|
|
std::unique_ptr<cryptonote::core> core;
|
|
};
|
|
|
|
std::unique_ptr<CoreEnv> initialise_rpc_core();
|
|
std::unique_ptr<RpcServerBundle> initialise_rpc_server(cryptonote::core&, FuzzedDataProvider&, bool);
|
|
bool generate_random_blocks(cryptonote::core&, FuzzedDataProvider&);
|
|
|
|
extern std::vector<crypto::hash> cached_tx_hashes;
|