From 487d6783ddba1c73080cbf26b10d097dcbef3e49 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 26 Mar 2013 17:04:07 -0700 Subject: [PATCH] Catch too many digits. --- src/cpp/ripple/Amount.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/cpp/ripple/Amount.cpp b/src/cpp/ripple/Amount.cpp index ac7411c1f..7546aa9cf 100644 --- a/src/cpp/ripple/Amount.cpp +++ b/src/cpp/ripple/Amount.cpp @@ -275,6 +275,12 @@ bool STAmount::setValue(const std::string& sAmount) try { + if ((smMatch[2].length() + smMatch[4].length()) > 18) + { + cLog(lsWARNING) << "Overlong number: " << sAmount; + return false; + } + mIsNegative = (smMatch[1].matched && (smMatch[1] == "-")); if (!smMatch[4].matched) // integer only