From 62bd05a99a3669541bb0641ba0d7a6512c1f1059 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Fri, 12 Jul 2013 11:25:48 -0700 Subject: [PATCH] Don't call getCurrentSnapshot without the master lock --- src/cpp/ripple/RPCHandler.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 0c266ae8c..ede833e75 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -107,9 +107,10 @@ Json::Value RPCHandler::transactionSign (Json::Value params, bool bSubmit, bool return rpcError (rpcINVALID_PARAMS); } + Ledger::pointer lSnapshot = mNetOps->getCurrentSnapshot (); AccountState::pointer asSrc = bOffline ? AccountState::pointer () // Don't look up address if offline. - : mNetOps->getAccountState (mNetOps->getCurrentSnapshot (), raSrcAddressID); + : mNetOps->getAccountState (lSnapshot, raSrcAddressID); mlh.unlock(); if (!bOffline && !asSrc) @@ -179,7 +180,6 @@ Json::Value RPCHandler::transactionSign (Json::Value params, bool bSubmit, bool return rpcError (rpcINVALID_PARAMS); } - Ledger::pointer lSnapshot = mNetOps->getCurrentSnapshot (); { bool bValid; RippleLineCache::pointer cache = boost::make_shared (lSnapshot); @@ -232,8 +232,7 @@ Json::Value RPCHandler::transactionSign (Json::Value params, bool bSubmit, bool if (!bOffline) { - Ledger::pointer lpCurrent = mNetOps->getCurrentSnapshot (); - SLE::pointer sleAccountRoot = mNetOps->getSLEi (lpCurrent, Ledger::getAccountRootIndex (raSrcAddressID.getAccountID ())); + SLE::pointer sleAccountRoot = mNetOps->getSLEi (lSnapshot, Ledger::getAccountRootIndex (raSrcAddressID.getAccountID ())); if (!sleAccountRoot) {