diff options
author | Andrew Chow <achow101-github@achow101.com> | 2019-10-15 17:26:46 -0400 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2020-01-06 12:57:21 -0500 |
commit | deaa6dd144f5650b385658a0c4f9a014aff8dde2 (patch) | |
tree | 21470cf99b54531eb03c5143cc3400e0495fdbfa /src/node | |
parent | f1ef7f0aa46338f4cd8de79696027a1bf868f359 (diff) |
psbt: check output index is within bounds before accessing
Diffstat (limited to 'src/node')
-rw-r--r-- | src/node/psbt.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/node/psbt.cpp b/src/node/psbt.cpp index 69fb1a28a9..ff7a38e40d 100644 --- a/src/node/psbt.cpp +++ b/src/node/psbt.cpp @@ -39,6 +39,10 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) in_amt += utxo.nValue; input_analysis.has_utxo = true; } else { + if (input.non_witness_utxo && psbtx.tx->vin[i].prevout.n >= input.non_witness_utxo->vout.size()) { + result.SetInvalid(strprintf("PSBT is not valid. Input %u specifies invalid prevout", i)); + return result; + } input_analysis.has_utxo = false; input_analysis.is_final = false; input_analysis.next = PSBTRole::UPDATER; |