diff --git a/electrum/transaction.py b/electrum/transaction.py index 908bda7af..af7789d34 100644 --- a/electrum/transaction.py +++ b/electrum/transaction.py @@ -564,8 +564,12 @@ class Transaction: if marker != b'\x01': raise ValueError('invalid txn marker byte: {}'.format(marker)) n_vin = vds.read_compact_size() + if n_vin < 1: + raise SerializationError('tx needs to have at least 1 input') self._inputs = [parse_input(vds) for i in range(n_vin)] n_vout = vds.read_compact_size() + if n_vout < 1: + raise SerializationError('tx needs to have at least 1 output') self._outputs = [parse_output(vds) for i in range(n_vout)] if is_segwit: for txin in self._inputs: