From 138f04a49f896774df41c27954120a0aa8fae413 Mon Sep 17 00:00:00 2001 From: Jack May Date: Tue, 12 Apr 2022 17:52:32 -0700 Subject: [PATCH] featurize bpf function hash collision fix (#24262) --- programs/bpf_loader/src/lib.rs | 7 +++++-- sdk/src/feature_set.rs | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index 961215d19..53890e361 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -44,7 +44,8 @@ use { feature_set::{ cap_accounts_data_len, disable_bpf_deprecated_load_instructions, disable_bpf_unresolved_symbols_at_runtime, disable_deprecated_loader, - do_support_realloc, reduce_required_deploy_balance, requestable_heap_size, + do_support_realloc, error_on_syscall_bpf_function_hash_collisions, + reduce_required_deploy_balance, requestable_heap_size, }, instruction::{AccountMeta, InstructionError}, keyed_account::keyed_account_at_index, @@ -142,7 +143,9 @@ pub fn create_executor( && invoke_context .feature_set .is_active(&disable_bpf_deprecated_load_instructions::id()), - syscall_bpf_function_hash_collision: false, + syscall_bpf_function_hash_collision: invoke_context + .feature_set + .is_active(&error_on_syscall_bpf_function_hash_collisions::id()), reject_callx_r10: false, // Warning, do not use `Config::default()` so that configuration here is explicit. }; diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index 9347f43e2..1aacc7972 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -335,6 +335,10 @@ pub mod add_get_minimum_delegation_instruction_to_stake_program { solana_sdk::declare_id!("St8k9dVXP97xT6faW24YmRSYConLbhsMJA4TJTBLmMT"); } +pub mod error_on_syscall_bpf_function_hash_collisions { + solana_sdk::declare_id!("8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b"); +} + lazy_static! { /// Map of feature identifiers to user-visible description pub static ref FEATURE_NAMES: HashMap = [ @@ -413,6 +417,7 @@ lazy_static! { (check_slice_translation_size::id(), "check size when translating slices"), (stake_split_uses_rent_sysvar::id(), "stake split instruction uses rent sysvar"), (add_get_minimum_delegation_instruction_to_stake_program::id(), "add GetMinimumDelegation instruction to stake program"), + (error_on_syscall_bpf_function_hash_collisions::id(), "error on bpf function hash collisions"), /*************** ADD NEW FEATURES HERE ***************/ ] .iter()