featurize rejection of callx r10 instructions (#24309)
This commit is contained in:
@ -45,7 +45,7 @@ use {
|
|||||||
cap_accounts_data_len, disable_bpf_deprecated_load_instructions,
|
cap_accounts_data_len, disable_bpf_deprecated_load_instructions,
|
||||||
disable_bpf_unresolved_symbols_at_runtime, disable_deprecated_loader,
|
disable_bpf_unresolved_symbols_at_runtime, disable_deprecated_loader,
|
||||||
do_support_realloc, error_on_syscall_bpf_function_hash_collisions,
|
do_support_realloc, error_on_syscall_bpf_function_hash_collisions,
|
||||||
reduce_required_deploy_balance, requestable_heap_size,
|
reduce_required_deploy_balance, reject_callx_r10, requestable_heap_size,
|
||||||
},
|
},
|
||||||
instruction::{AccountMeta, InstructionError},
|
instruction::{AccountMeta, InstructionError},
|
||||||
keyed_account::keyed_account_at_index,
|
keyed_account::keyed_account_at_index,
|
||||||
@ -146,7 +146,9 @@ pub fn create_executor(
|
|||||||
syscall_bpf_function_hash_collision: invoke_context
|
syscall_bpf_function_hash_collision: invoke_context
|
||||||
.feature_set
|
.feature_set
|
||||||
.is_active(&error_on_syscall_bpf_function_hash_collisions::id()),
|
.is_active(&error_on_syscall_bpf_function_hash_collisions::id()),
|
||||||
reject_callx_r10: false,
|
reject_callx_r10: invoke_context
|
||||||
|
.feature_set
|
||||||
|
.is_active(&reject_callx_r10::id()),
|
||||||
// Warning, do not use `Config::default()` so that configuration here is explicit.
|
// Warning, do not use `Config::default()` so that configuration here is explicit.
|
||||||
};
|
};
|
||||||
let mut create_executor_metrics = executor_metrics::CreateMetrics::default();
|
let mut create_executor_metrics = executor_metrics::CreateMetrics::default();
|
||||||
|
@ -335,6 +335,10 @@ pub mod error_on_syscall_bpf_function_hash_collisions {
|
|||||||
solana_sdk::declare_id!("8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b");
|
solana_sdk::declare_id!("8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub mod reject_callx_r10 {
|
||||||
|
solana_sdk::declare_id!("3NKRSwpySNwD3TvP5pHnRmkAQRsdkXWRr1WaQh8p4PWX");
|
||||||
|
}
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
/// Map of feature identifiers to user-visible description
|
/// Map of feature identifiers to user-visible description
|
||||||
pub static ref FEATURE_NAMES: HashMap<Pubkey, &'static str> = [
|
pub static ref FEATURE_NAMES: HashMap<Pubkey, &'static str> = [
|
||||||
@ -413,6 +417,7 @@ lazy_static! {
|
|||||||
(stake_split_uses_rent_sysvar::id(), "stake split instruction uses rent sysvar"),
|
(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"),
|
(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"),
|
(error_on_syscall_bpf_function_hash_collisions::id(), "error on bpf function hash collisions"),
|
||||||
|
(reject_callx_r10::id(), "Reject bpf callx r10 instructions"),
|
||||||
/*************** ADD NEW FEATURES HERE ***************/
|
/*************** ADD NEW FEATURES HERE ***************/
|
||||||
]
|
]
|
||||||
.iter()
|
.iter()
|
||||||
|
Reference in New Issue
Block a user