util: Fail to parse empty string in ParseMoney

This commit is contained in:
MarcoFalke 2020-02-29 00:29:04 +07:00
parent fab30b61eb
commit 8888461f68
No known key found for this signature in database
GPG key ID: CE2B75697E69A548
2 changed files with 10 additions and 0 deletions

View file

@ -1199,6 +1199,12 @@ BOOST_AUTO_TEST_CASE(util_ParseMoney)
BOOST_CHECK(ParseMoney("0.00000001", ret));
BOOST_CHECK_EQUAL(ret, COIN/100000000);
// Parsing amount that can not be represented in ret should fail
BOOST_CHECK(!ParseMoney("0.000000001", ret));
// Parsing empty string should fail
BOOST_CHECK(!ParseMoney("", ret));
// Attempted 63 bit overflow should fail
BOOST_CHECK(!ParseMoney("92233720368.54775808", ret));

View file

@ -37,6 +37,10 @@ bool ParseMoney(const std::string& str, CAmount& nRet)
return false;
}
if (str.empty()) {
return false;
}
std::string strWhole;
int64_t nUnits = 0;
const char* p = str.c_str();