Fail secp256k1 if the instruction data looks incorrect (#19300)

This commit is contained in:
Jack May
2021-08-19 13:13:54 -07:00
committed by GitHub
parent f59a55be17
commit 3ec33e7d02
9 changed files with 74 additions and 12 deletions

View File

@@ -131,10 +131,14 @@ impl BanksServer {
fn verify_transaction(
transaction: &Transaction,
libsecp256k1_0_5_upgrade_enabled: bool,
libsecp256k1_fail_on_bad_count: bool,
) -> transaction::Result<()> {
if let Err(err) = transaction.verify() {
Err(err)
} else if let Err(err) = transaction.verify_precompiles(libsecp256k1_0_5_upgrade_enabled) {
} else if let Err(err) = transaction.verify_precompiles(
libsecp256k1_0_5_upgrade_enabled,
libsecp256k1_fail_on_bad_count,
) {
Err(err)
} else {
Ok(())
@@ -228,6 +232,7 @@ impl Banks for BanksServer {
if let Err(err) = verify_transaction(
&transaction,
self.bank(commitment).libsecp256k1_0_5_upgrade_enabled(),
self.bank(commitment).libsecp256k1_fail_on_bad_count(),
) {
return Some(Err(err));
}