Feature cleanup (#19528)

This commit is contained in:
Jack May
2021-08-31 14:51:26 -07:00
committed by GitHub
parent e1939688c2
commit 5cf8d8795b
7 changed files with 32 additions and 65 deletions

View File

@@ -23,7 +23,7 @@ use solana_sdk::{
feature_set::{
blake3_syscall_enabled, close_upgradeable_program_accounts, disable_fees_sysvar,
enforce_aligned_host_addrs, libsecp256k1_0_5_upgrade_enabled, mem_overlap_fix,
memory_ops_syscalls, secp256k1_recover_syscall_enabled,
secp256k1_recover_syscall_enabled,
},
hash::{Hasher, HASH_BYTES},
ic_msg,
@@ -158,12 +158,10 @@ pub fn register_syscalls(
syscall_registry
.register_syscall_by_name(b"sol_get_rent_sysvar", SyscallGetRentSysvar::call)?;
if invoke_context.is_feature_active(&memory_ops_syscalls::id()) {
syscall_registry.register_syscall_by_name(b"sol_memcpy_", SyscallMemcpy::call)?;
syscall_registry.register_syscall_by_name(b"sol_memmove_", SyscallMemmove::call)?;
syscall_registry.register_syscall_by_name(b"sol_memcmp_", SyscallMemcmp::call)?;
syscall_registry.register_syscall_by_name(b"sol_memset_", SyscallMemset::call)?;
}
syscall_registry.register_syscall_by_name(b"sol_memcpy_", SyscallMemcpy::call)?;
syscall_registry.register_syscall_by_name(b"sol_memmove_", SyscallMemmove::call)?;
syscall_registry.register_syscall_by_name(b"sol_memcmp_", SyscallMemcmp::call)?;
syscall_registry.register_syscall_by_name(b"sol_memset_", SyscallMemset::call)?;
// Cross-program invocation syscalls
syscall_registry
@@ -290,43 +288,40 @@ pub fn bind_syscall_context_objects<'a>(
None,
)?;
bind_feature_gated_syscall_context_object!(
vm,
invoke_context.is_feature_active(&memory_ops_syscalls::id()),
vm.bind_syscall_context_object(
Box::new(SyscallMemcpy {
cost: invoke_context.get_compute_budget().cpi_bytes_per_unit,
compute_meter: invoke_context.get_compute_meter(),
loader_id,
mem_overlap_fix: invoke_context.is_feature_active(&mem_overlap_fix::id()),
}),
);
bind_feature_gated_syscall_context_object!(
vm,
invoke_context.is_feature_active(&memory_ops_syscalls::id()),
None,
)?;
vm.bind_syscall_context_object(
Box::new(SyscallMemmove {
cost: invoke_context.get_compute_budget().cpi_bytes_per_unit,
compute_meter: invoke_context.get_compute_meter(),
loader_id,
}),
);
bind_feature_gated_syscall_context_object!(
vm,
invoke_context.is_feature_active(&memory_ops_syscalls::id()),
None,
)?;
vm.bind_syscall_context_object(
Box::new(SyscallMemcmp {
cost: invoke_context.get_compute_budget().cpi_bytes_per_unit,
compute_meter: invoke_context.get_compute_meter(),
loader_id,
}),
);
bind_feature_gated_syscall_context_object!(
vm,
invoke_context.is_feature_active(&memory_ops_syscalls::id()),
None,
)?;
vm.bind_syscall_context_object(
Box::new(SyscallMemset {
cost: invoke_context.get_compute_budget().cpi_bytes_per_unit,
compute_meter: invoke_context.get_compute_meter(),
loader_id,
}),
);
None,
)?;
bind_feature_gated_syscall_context_object!(
vm,
invoke_context.is_feature_active(&blake3_syscall_enabled::id()),

View File

@@ -24,9 +24,7 @@ pub fn process_instruction(
let config_keyed_account = &mut keyed_account_at_index(keyed_accounts, 0)?;
let current_data: ConfigKeys = {
let config_account = config_keyed_account.try_account_ref_mut()?;
if invoke_context.is_feature_active(&feature_set::check_program_owner::id())
&& config_account.owner() != &crate::id()
{
if config_account.owner() != &crate::id() {
return Err(InstructionError::InvalidAccountOwner);
}

View File

@@ -38,11 +38,7 @@ pub fn process_instruction(
let me = &keyed_account_at_index(keyed_accounts, 0)?;
if me.owner()? != id() {
if invoke_context.is_feature_active(&feature_set::check_program_owner::id()) {
return Err(InstructionError::InvalidAccountOwner);
} else {
return Err(InstructionError::IncorrectProgramId);
}
return Err(InstructionError::InvalidAccountOwner);
}
match limited_deserialize(data)? {

View File

@@ -321,9 +321,7 @@ pub fn process_instruction(
let me = &mut keyed_account_at_index(keyed_accounts, 0)?;
if invoke_context.is_feature_active(&feature_set::check_program_owner::id())
&& me.owner()? != id()
{
if me.owner()? != id() {
return Err(InstructionError::InvalidAccountOwner);
}