diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index a9e7f51965..b7be9a3c8b 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -1024,13 +1024,20 @@ void NetworkOPs::takePosition (int seq, SHAMap::ref position) SHAMapAddNode NetworkOPs::gotTXData (const boost::shared_ptr& peer, uint256 const& hash, const std::list& nodeIDs, const std::list< Blob >& nodeData) { - if (!haveConsensusObject ()) + + boost::shared_ptr consensus; + { + ScopedLock mlh(theApp->getMasterLock()); + consensus = mConsensus; + } + + if (!consensus) { WriteLog (lsWARNING, NetworkOPs) << "Got TX data with no consensus object"; return SHAMapAddNode (); } - return mConsensus->peerGaveNodes (peer, hash, nodeIDs, nodeData); + return consensus->peerGaveNodes (peer, hash, nodeIDs, nodeData); } bool NetworkOPs::hasTXSet (const boost::shared_ptr& peer, uint256 const& set, protocol::TxSetStatus status)