Ensure InInstruction data is properly limited

Bitcoin didn't check, assuming data was <= 80 bytes thanks to being in
OP_RETURN. An additional global check has been added.
This commit is contained in:
Luke Parker
2023-03-25 01:36:28 -04:00
parent 6a981dae6e
commit d954e67238
4 changed files with 20 additions and 8 deletions

View File

@@ -36,7 +36,7 @@ use bitcoin_serai::bitcoin::{
PackedLockTime, Sequence, Script, Witness, TxIn, TxOut, Address as BAddress,
};
use serai_client::coins::bitcoin::Address;
use serai_client::{primitives::MAX_DATA_LEN, coins::bitcoin::Address};
use crate::{
coins::{
@@ -357,6 +357,7 @@ impl Coin for Bitcoin {
} else {
vec![]
};
data.truncate(MAX_DATA_LEN.try_into().unwrap());
outputs.push(Output { kind, output, data })
}