From e9324204ef17bd55a889859a222bbe743f2ada6c Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 12 Mar 2013 09:51:37 -0700 Subject: [PATCH] Don't allow subscribe to invalid market. --- src/cpp/ripple/RPCHandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 411eb33842..dce5a7c5d6 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -2825,6 +2825,14 @@ Json::Value RPCHandler::doSubscribe(Json::Value jvRequest, int& cost) bool bothSides = (*it)["both_sides"].asBool(); + if (!Ledger::isValidBook(uTakerPaysCurrencyID, uTakerPaysIssuerID, uTakerGetsCurrencyID, uTakerGetsIssuerID)) + { + cLog(lsWARNING) << "Bad market: " << + uTakerPaysCurrencyID << ":" << uTakerPaysIssuerID << " -> " << + uTakerGetsCurrencyID << ":" << uTakerGetsIssuerID; + return rpcError(rpcBAD_MARKET); + } + mNetOps->subBook(ispSub, uTakerPaysCurrencyID, uTakerGetsCurrencyID, uTakerPaysIssuerID, uTakerGetsIssuerID); if (bothSides) mNetOps->subBook(ispSub, uTakerGetsCurrencyID, uTakerPaysCurrencyID, uTakerGetsIssuerID, uTakerPaysIssuerID); if ((*it)["state_now"].asBool())