unit_tests: fix use after free

This commit is contained in:
moneromooo-monero 2019-10-30 18:39:48 +00:00
parent bb04201505
commit 5ae0298818
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -262,16 +262,25 @@ TEST(ban, ignores_port)
TEST(node_server, bind_same_p2p_port)
{
const auto new_node = []() -> std::unique_ptr<Server> {
struct test_data_t
{
test_core pr_core;
cryptonote::t_cryptonote_protocol_handler<test_core> cprotocol(pr_core, NULL);
std::unique_ptr<Server> server(new Server(cprotocol));
cprotocol.set_p2p_endpoint(server.get());
cryptonote::t_cryptonote_protocol_handler<test_core> cprotocol;
std::unique_ptr<Server> server;
return server;
test_data_t(): cprotocol(pr_core, NULL)
{
server.reset(new Server(cprotocol));
cprotocol.set_p2p_endpoint(server.get());
}
};
const auto init = [](const std::unique_ptr<Server>& server, const char* port) -> bool {
const auto new_node = []() -> std::unique_ptr<test_data_t> {
test_data_t *d = new test_data_t;
return std::unique_ptr<test_data_t>(d);
};
const auto init = [](const std::unique_ptr<test_data_t>& server, const char* port) -> bool {
boost::program_options::options_description desc_options("Command line options");
cryptonote::core::init_options(desc_options);
Server::init_options(desc_options);
@ -284,7 +293,7 @@ TEST(node_server, bind_same_p2p_port)
boost::program_options::notify(vm);
return server->init(vm);
return server->server->init(vm);
};
constexpr char port[] = "48080";