From e9984a932e5203cc5c4624f4460fc1e42d8427e1 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 9 May 2013 17:36:02 -0700 Subject: [PATCH] Avoid a crash scenario if we interrogate the remote endpoint after it disconnected. --- src/cpp/ripple/RPCServer.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cpp/ripple/RPCServer.cpp b/src/cpp/ripple/RPCServer.cpp index f3b81e577..53044300e 100644 --- a/src/cpp/ripple/RPCServer.cpp +++ b/src/cpp/ripple/RPCServer.cpp @@ -146,7 +146,14 @@ std::string RPCServer::handleRequest(const std::string& requestStr) return HTTPReply(400, "params unparseable"); } - mRole = iAdminGet(jvRequest, mSocket.remote_endpoint().address().to_string()); + try + { + mRole = iAdminGet(jvRequest, mSocket.remote_endpoint().address().to_string()); + } + catch (...) + { // endpoint already disconnected + return ""; + } if (RPCHandler::FORBID == mRole) {