@@ -66,11 +66,14 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
6666 dummyNode1.fSuccessfullyConnected = true ;
6767
6868 // This test requires that we have a chain with non-zero work.
69+ LOCK (cs_main);
6970 BOOST_CHECK (chainActive.Tip () != nullptr );
7071 BOOST_CHECK (chainActive.Tip ()->nChainWork > 0 );
7172
7273 // Test starts here
74+ LOCK (dummyNode1.cs_sendProcessing );
7375 peerLogic->SendMessages (&dummyNode1, interruptDummy); // should result in getheaders
76+ LOCK (dummyNode1.cs_vSend );
7477 BOOST_CHECK (dummyNode1.vSendMsg .size () > 0 );
7578 dummyNode1.vSendMsg .clear ();
7679
@@ -183,7 +186,11 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
183186 peerLogic->InitializeNode (&dummyNode1);
184187 dummyNode1.nVersion = 1 ;
185188 dummyNode1.fSuccessfullyConnected = true ;
186- Misbehaving (dummyNode1.GetId (), 100 ); // Should get banned
189+ {
190+ LOCK (cs_main);
191+ Misbehaving (dummyNode1.GetId (), 100 ); // Should get banned
192+ }
193+ LOCK (dummyNode1.cs_sendProcessing );
187194 peerLogic->SendMessages (&dummyNode1, interruptDummy);
188195 BOOST_CHECK (connman->IsBanned (addr1));
189196 BOOST_CHECK (!connman->IsBanned (ip (0xa0b0c001 |0x0000ff00 ))); // Different IP, not banned
@@ -194,11 +201,18 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
194201 peerLogic->InitializeNode (&dummyNode2);
195202 dummyNode2.nVersion = 1 ;
196203 dummyNode2.fSuccessfullyConnected = true ;
197- Misbehaving (dummyNode2.GetId (), 50 );
204+ {
205+ LOCK (cs_main);
206+ Misbehaving (dummyNode2.GetId (), 50 );
207+ }
208+ LOCK (dummyNode2.cs_sendProcessing );
198209 peerLogic->SendMessages (&dummyNode2, interruptDummy);
199210 BOOST_CHECK (!connman->IsBanned (addr2)); // 2 not banned yet...
200211 BOOST_CHECK (connman->IsBanned (addr1)); // ... but 1 still should be
201- Misbehaving (dummyNode2.GetId (), 50 );
212+ {
213+ LOCK (cs_main);
214+ Misbehaving (dummyNode2.GetId (), 50 );
215+ }
202216 peerLogic->SendMessages (&dummyNode2, interruptDummy);
203217 BOOST_CHECK (connman->IsBanned (addr2));
204218
@@ -219,13 +233,23 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
219233 peerLogic->InitializeNode (&dummyNode1);
220234 dummyNode1.nVersion = 1 ;
221235 dummyNode1.fSuccessfullyConnected = true ;
222- Misbehaving (dummyNode1.GetId (), 100 );
236+ {
237+ LOCK (cs_main);
238+ Misbehaving (dummyNode1.GetId (), 100 );
239+ }
240+ LOCK (dummyNode1.cs_sendProcessing );
223241 peerLogic->SendMessages (&dummyNode1, interruptDummy);
224242 BOOST_CHECK (!connman->IsBanned (addr1));
225- Misbehaving (dummyNode1.GetId (), 10 );
243+ {
244+ LOCK (cs_main);
245+ Misbehaving (dummyNode1.GetId (), 10 );
246+ }
226247 peerLogic->SendMessages (&dummyNode1, interruptDummy);
227248 BOOST_CHECK (!connman->IsBanned (addr1));
228- Misbehaving (dummyNode1.GetId (), 1 );
249+ {
250+ LOCK (cs_main);
251+ Misbehaving (dummyNode1.GetId (), 1 );
252+ }
229253 peerLogic->SendMessages (&dummyNode1, interruptDummy);
230254 BOOST_CHECK (connman->IsBanned (addr1));
231255 gArgs .ForceSetArg (" -banscore" , std::to_string (DEFAULT_BANSCORE_THRESHOLD));
@@ -249,7 +273,11 @@ BOOST_AUTO_TEST_CASE(DoS_bantime)
249273 dummyNode.nVersion = 1 ;
250274 dummyNode.fSuccessfullyConnected = true ;
251275
252- Misbehaving (dummyNode.GetId (), 100 );
276+ {
277+ LOCK (cs_main);
278+ Misbehaving (dummyNode.GetId (), 100 );
279+ }
280+ LOCK (dummyNode.cs_sendProcessing );
253281 peerLogic->SendMessages (&dummyNode, interruptDummy);
254282 BOOST_CHECK (connman->IsBanned (addr));
255283
@@ -266,6 +294,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime)
266294CTransactionRef RandomOrphan ()
267295{
268296 std::map<uint256, COrphanTx>::iterator it;
297+ LOCK (cs_main);
269298 it = mapOrphanTransactions.lower_bound (InsecureRand256 ());
270299 if (it == mapOrphanTransactions.end ())
271300 it = mapOrphanTransactions.begin ();
@@ -335,6 +364,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans)
335364 BOOST_CHECK (!AddOrphanTx (MakeTransactionRef (tx), i));
336365 }
337366
367+ LOCK (cs_main);
338368 // Test EraseOrphansFor:
339369 for (NodeId i = 0 ; i < 3 ; i++)
340370 {
0 commit comments