diff options
| author | Wladimir J. van der Laan <[email protected]> | 2017-02-15 15:31:04 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2017-02-15 16:29:16 +0100 |
| commit | 7a93af8340d95add7f0d9ddf051aa242302cfc10 (patch) | |
| tree | 7e7e6fdd4e47baa194cd284e1b92e478f49c51bb | |
| parent | Merge #9758: Selectively suppress deprecation warnings (diff) | |
| parent | Return error when importmulti called with invalid address. (diff) | |
| download | discoin-7a93af8340d95add7f0d9ddf051aa242302cfc10.tar.xz discoin-7a93af8340d95add7f0d9ddf051aa242302cfc10.zip | |
Merge #9756: Return error when importmulti called with invalid address.
9acf25c Return error when importmulti called with invalid address. (Russell Yanofsky)
| -rwxr-xr-x | qa/rpc-tests/importmulti.py | 10 | ||||
| -rw-r--r-- | src/wallet/rpcdump.cpp | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/qa/rpc-tests/importmulti.py b/qa/rpc-tests/importmulti.py index 02a932e73..1aa4ba2e1 100755 --- a/qa/rpc-tests/importmulti.py +++ b/qa/rpc-tests/importmulti.py @@ -64,6 +64,16 @@ class ImportMultiTest (BitcoinTestFramework): watchonly_address = address['address'] watchonly_timestamp = timestamp + print("Should not import an invalid address") + result = self.nodes[1].importmulti([{ + "scriptPubKey": { + "address": "not valid address", + }, + "timestamp": "now", + }]) + assert_equal(result[0]['success'], False) + assert_equal(result[0]['error']['code'], -5) + assert_equal(result[0]['error']['message'], 'Invalid address') # ScriptPubKey + internal print("Should import a scriptPubKey with internal flag") diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp index 0a3225937..908655d41 100644 --- a/src/wallet/rpcdump.cpp +++ b/src/wallet/rpcdump.cpp @@ -672,6 +672,9 @@ UniValue ProcessImport(const UniValue& data, const int64_t timestamp) if (!isScript) { address = CBitcoinAddress(output); + if (!address.IsValid()) { + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid address"); + } script = GetScriptForDestination(address.Get()); } else { if (!IsHex(output)) { |