diff --git a/src/SHAMapNodes.cpp b/src/SHAMapNodes.cpp index af990f6b40..32d9b65d80 100644 --- a/src/SHAMapNodes.cpp +++ b/src/SHAMapNodes.cpp @@ -247,7 +247,10 @@ SHAMapTreeNode::SHAMapTreeNode(const SHAMapNode& id, const std::vector(s.getSHA512Half(), s.peekData()); mType = tnTRANSACTION; } - if (prefix == sHP_LeafNode) + else if (prefix == sHP_LeafNode) { uint256 u; s.get256(u, s.getLength() - 32); s.chop(32); if (u.isZero()) + { + Log(lsINFO) << "invalid PLN node"; throw std::runtime_error("invalid PLN node"); + } mItem = boost::make_shared(u, s.peekData()); mType = tnACCOUNT_STATE; } - if (prefix == sHP_InnerNode) + else if (prefix == sHP_InnerNode) { if (rawNode.size() != (512 + 4)) throw std::runtime_error("invalid PIN node"); @@ -277,7 +283,10 @@ SHAMapTreeNode::SHAMapTreeNode(const SHAMapNode& id, const std::vector