Disallow extended encoding for non-witness transactions

This commit is contained in:
Pieter Wuille 2018-08-23 17:01:14 -07:00
parent 540bf8aacc
commit bb530efa18

View file

@ -220,6 +220,10 @@ inline void UnserializeTransaction(TxType& tx, Stream& s) {
for (size_t i = 0; i < tx.vin.size(); i++) {
s >> tx.vin[i].scriptWitness.stack;
}
if (!tx.HasWitness()) {
/* It's illegal to encode witnesses when all witness stacks are empty. */
throw std::ios_base::failure("Superfluous witness record");
}
}
if (flags) {
/* Unknown flag in the serialization */