Merge #15337: rpc: Fix for segfault if combinepsbt called with empty inputs
30d0f7be6e
rpc: Fix for segfault if combinepsbt called with empty inputs (benthecarman)
Pull request description:
Fixes #15300
Tree-SHA512: 25e7b4e6e48d8b0d197f0ab96df308fff33e2110f8929cb48914877fa7f4c4a84f173b1378fdb2dec5d03fe7d6d1aced4b577e55f9fe180d8147d9106ebf543f
This commit is contained in:
commit
e84e0d4b5e
2 changed files with 6 additions and 0 deletions
|
@ -1518,6 +1518,9 @@ UniValue combinepsbt(const JSONRPCRequest& request)
|
|||
// Unserialize the transactions
|
||||
std::vector<PartiallySignedTransaction> psbtxs;
|
||||
UniValue txs = request.params[0].get_array();
|
||||
if (txs.empty()) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Parameter 'txs' cannot be empty");
|
||||
}
|
||||
for (unsigned int i = 0; i < txs.size(); ++i) {
|
||||
PartiallySignedTransaction psbtx;
|
||||
std::string error;
|
||||
|
|
|
@ -269,6 +269,9 @@ class PSBTTest(BitcoinTestFramework):
|
|||
combined = self.nodes[2].combinepsbt(combiner['combine'])
|
||||
assert_equal(combined, combiner['result'])
|
||||
|
||||
# Empty combiner test
|
||||
assert_raises_rpc_error(-8, "Parameter 'txs' cannot be empty", self.nodes[0].combinepsbt, [])
|
||||
|
||||
# Finalizer test
|
||||
for finalizer in finalizers:
|
||||
finalized = self.nodes[2].finalizepsbt(finalizer['finalize'], False)['psbt']
|
||||
|
|
Loading…
Reference in a new issue