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) TEST(node_server, bind_same_p2p_port)
{ {
const auto new_node = []() -> std::unique_ptr<Server> { struct test_data_t
{
test_core pr_core; test_core pr_core;
cryptonote::t_cryptonote_protocol_handler<test_core> cprotocol(pr_core, NULL); cryptonote::t_cryptonote_protocol_handler<test_core> cprotocol;
std::unique_ptr<Server> server(new Server(cprotocol)); std::unique_ptr<Server> server;
cprotocol.set_p2p_endpoint(server.get());
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"); boost::program_options::options_description desc_options("Command line options");
cryptonote::core::init_options(desc_options); cryptonote::core::init_options(desc_options);
Server::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); boost::program_options::notify(vm);
return server->init(vm); return server->server->init(vm);
}; };
constexpr char port[] = "48080"; constexpr char port[] = "48080";