From 7777f2a4bb1f9d843bc50a4e35085cfbb2808780 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Mon, 27 Apr 2020 10:35:32 -0400 Subject: miner: Avoid stack-use-after-return in validationinterface This is achieved by switching to a shared_ptr. Also, switch the validationinterfaces in the tests to use shared_ptrs for the same reason. --- src/test/validationinterface_tests.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/test/validationinterface_tests.cpp') diff --git a/src/test/validationinterface_tests.cpp b/src/test/validationinterface_tests.cpp index 14f09ae90..d2fc20e62 100644 --- a/src/test/validationinterface_tests.cpp +++ b/src/test/validationinterface_tests.cpp @@ -12,7 +12,6 @@ BOOST_FIXTURE_TEST_SUITE(validationinterface_tests, TestingSetup) -/** struct TestSubscriberNoop final : public CValidationInterface { void BlockChecked(const CBlock&, const BlockValidationState&) override {} }; @@ -34,9 +33,9 @@ BOOST_AUTO_TEST_CASE(unregister_validation_interface_race) std::thread sub{[&] { // keep going for about 1 sec, which is 250k iterations for (int i = 0; i < 250000; i++) { - TestSubscriberNoop sub{}; - RegisterValidationInterface(&sub); - UnregisterValidationInterface(&sub); + auto sub = std::make_shared(); + RegisterSharedValidationInterface(sub); + UnregisterSharedValidationInterface(sub); } // tell the other thread we are done generate = false; @@ -46,7 +45,6 @@ BOOST_AUTO_TEST_CASE(unregister_validation_interface_race) sub.join(); BOOST_CHECK(!generate); } -*/ class TestInterface : public CValidationInterface { -- cgit v1.2.3