Skip to content

Commit e84e0d4

Browse files
author
MarcoFalke
committed
Merge #15337: rpc: Fix for segfault if combinepsbt called with empty inputs
30d0f7b rpc: Fix for segfault if combinepsbt called with empty inputs (benthecarman) Pull request description: Fixes #15300 Tree-SHA512: 25e7b4e6e48d8b0d197f0ab96df308fff33e2110f8929cb48914877fa7f4c4a84f173b1378fdb2dec5d03fe7d6d1aced4b577e55f9fe180d8147d9106ebf543f
2 parents 6f4e0d1 + 30d0f7b commit e84e0d4

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/rpc/rawtransaction.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,9 @@ UniValue combinepsbt(const JSONRPCRequest& request)
15181518
// Unserialize the transactions
15191519
std::vector<PartiallySignedTransaction> psbtxs;
15201520
UniValue txs = request.params[0].get_array();
1521+
if (txs.empty()) {
1522+
throw JSONRPCError(RPC_INVALID_PARAMETER, "Parameter 'txs' cannot be empty");
1523+
}
15211524
for (unsigned int i = 0; i < txs.size(); ++i) {
15221525
PartiallySignedTransaction psbtx;
15231526
std::string error;

test/functional/rpc_psbt.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,9 @@ def run_test(self):
269269
combined = self.nodes[2].combinepsbt(combiner['combine'])
270270
assert_equal(combined, combiner['result'])
271271

272+
# Empty combiner test
273+
assert_raises_rpc_error(-8, "Parameter 'txs' cannot be empty", self.nodes[0].combinepsbt, [])
274+
272275
# Finalizer test
273276
for finalizer in finalizers:
274277
finalized = self.nodes[2].finalizepsbt(finalizer['finalize'], False)['psbt']

0 commit comments

Comments
 (0)