diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-06-03 15:13:30 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2015-06-03 15:13:36 +0200 |
commit | c7272a50bdc773a901f7c8ca5e5fddd1a5bdcca1 (patch) | |
tree | 854a013dc706b8a76ac95a43cf93017078ef36b8 /src/test/rpc_tests.cpp | |
parent | 87406aa7354ef7aeb42d5dbac9f5a69d4095bc0c (diff) | |
parent | 4e157fc60dae5ca69933ea4c1585a2a078b4d957 (diff) | |
download | bitcoin-c7272a50bdc773a901f7c8ca5e5fddd1a5bdcca1.tar.xz |
Merge pull request #6226
4e157fc json: fail read_string if string contains trailing garbage (Wladimir J. van der Laan)
Diffstat (limited to 'src/test/rpc_tests.cpp')
-rw-r--r-- | src/test/rpc_tests.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 45cb551d04..5899671d2f 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -140,6 +140,24 @@ BOOST_AUTO_TEST_CASE(rpc_parse_monetary_values) BOOST_CHECK_EQUAL(AmountFromValue(ValueFromString("20999999.99999999")), 2099999999999999LL); } +BOOST_AUTO_TEST_CASE(json_parse_errors) +{ + Value value; + // Valid + BOOST_CHECK_EQUAL(read_string(std::string("1.0"), value), true); + // Valid, with trailing whitespace + BOOST_CHECK_EQUAL(read_string(std::string("1.0 "), value), true); + // Invalid, initial garbage + BOOST_CHECK_EQUAL(read_string(std::string("[1.0"), value), false); + BOOST_CHECK_EQUAL(read_string(std::string("a1.0"), value), false); + // Invalid, trailing garbage + BOOST_CHECK_EQUAL(read_string(std::string("1.0sds"), value), false); + BOOST_CHECK_EQUAL(read_string(std::string("1.0]"), value), false); + // BTC addresses should fail parsing + BOOST_CHECK_EQUAL(read_string(std::string("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"), value), false); + BOOST_CHECK_EQUAL(read_string(std::string("3J98t1WpEZ73CNmQviecrnyiWrnqRhWNL"), value), false); +} + BOOST_AUTO_TEST_CASE(rpc_boostasiotocnetaddr) { // Check IPv4 addresses |