From 646f7ca5deb4c904a180185c9c4bbebda3be0204 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 6 Mar 2013 15:57:49 -0800 Subject: [PATCH] Fix a bug that can cause a crash if a peer requests an empty node. --- src/cpp/ripple/SHAMapSync.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cpp/ripple/SHAMapSync.cpp b/src/cpp/ripple/SHAMapSync.cpp index bdd4d1dae7..f58a5ea6b0 100644 --- a/src/cpp/ripple/SHAMapSync.cpp +++ b/src/cpp/ripple/SHAMapSync.cpp @@ -149,10 +149,16 @@ bool SHAMap::getNodeFat(const SHAMapNode& wanted, std::vector& nodeI SHAMapTreeNode::pointer node = getNode(wanted); if (!node) { - cLog(lsWARNING) << "peer requested node that not in the map: " << wanted; + cLog(lsWARNING) << "peer requested node that is not in the map: " << wanted; throw std::runtime_error("Peer requested node not in map"); } + if (node->isEmpty()) + { + cLog(lsWARNING) << "peer requests empty node"; + return false; + } + nodeIDs.push_back(*node); Serializer s; node->addRaw(s, snfWIRE);