* Bumps solana_rbpf to v0.2.22
* Adjusts vm::Config and feature gates.
(cherry picked from commit 96c88d1a5e
)
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -5935,9 +5935,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana_rbpf"
|
||||
version = "0.2.21"
|
||||
version = "0.2.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8fb565d026461ba89d1d92cc36cf0882fba44076559c3bbed1e8a9888112b3d7"
|
||||
checksum = "425e41726409233aa2b4e5063a94a8bc5861e6d59cf700cfd9dd142084437c6f"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"combine",
|
||||
|
@@ -40,7 +40,7 @@ solana-config-program = { path = "../programs/config", version = "=1.8.17" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.8.17" }
|
||||
solana-logger = { path = "../logger", version = "=1.8.17" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.8.17" }
|
||||
solana_rbpf = "=0.2.21"
|
||||
solana_rbpf = "=0.2.22"
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.8.17" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.8.17" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.8.17" }
|
||||
|
@@ -1990,10 +1990,7 @@ fn read_and_verify_elf(program_location: &str) -> Result<Vec<u8>, Box<dyn std::e
|
||||
&program_data,
|
||||
Some(verifier::check),
|
||||
Config {
|
||||
reject_unresolved_syscalls: true,
|
||||
verify_mul64_imm_nonzero: false,
|
||||
verify_shift32_imm: true,
|
||||
reject_section_virtual_address_file_offset_mismatch: true,
|
||||
reject_broken_elfs: true,
|
||||
..Config::default()
|
||||
},
|
||||
register_syscalls(&mut invoke_context).unwrap(),
|
||||
|
4
programs/bpf/Cargo.lock
generated
4
programs/bpf/Cargo.lock
generated
@@ -3745,9 +3745,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana_rbpf"
|
||||
version = "0.2.21"
|
||||
version = "0.2.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8fb565d026461ba89d1d92cc36cf0882fba44076559c3bbed1e8a9888112b3d7"
|
||||
checksum = "425e41726409233aa2b4e5063a94a8bc5861e6d59cf700cfd9dd142084437c6f"
|
||||
dependencies = [
|
||||
"byteorder 1.3.4",
|
||||
"combine",
|
||||
|
@@ -30,7 +30,7 @@ solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.8.17" }
|
||||
solana-cli-output = { path = "../../cli-output", version = "=1.8.17" }
|
||||
solana-logger = { path = "../../logger", version = "=1.8.17" }
|
||||
solana-measure = { path = "../../measure", version = "=1.8.17" }
|
||||
solana_rbpf = "=0.2.21"
|
||||
solana_rbpf = "=0.2.22"
|
||||
solana-runtime = { path = "../../runtime", version = "=1.8.17" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.8.17" }
|
||||
solana-transaction-status = { path = "../../transaction-status", version = "=1.8.17" }
|
||||
|
@@ -214,10 +214,7 @@ fn run_program(
|
||||
|
||||
let config = Config {
|
||||
enable_instruction_tracing: true,
|
||||
reject_unresolved_syscalls: true,
|
||||
reject_section_virtual_address_file_offset_mismatch: true,
|
||||
verify_mul64_imm_nonzero: false,
|
||||
verify_shift32_imm: true,
|
||||
reject_broken_elfs: true,
|
||||
..Config::default()
|
||||
};
|
||||
let mut executable = Executable::<BpfError, ThisInstructionMeter>::from_elf(
|
||||
|
@@ -22,7 +22,7 @@ solana-measure = { path = "../../measure", version = "=1.8.17" }
|
||||
solana-metrics = { path = "../../metrics", version = "=1.8.17" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.8.17" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.8.17" }
|
||||
solana_rbpf = "=0.2.21"
|
||||
solana_rbpf = "=0.2.22"
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -37,10 +37,8 @@ use {
|
||||
entrypoint::{HEAP_LENGTH, SUCCESS},
|
||||
feature_set::{
|
||||
add_missing_program_error_mappings, close_upgradeable_program_accounts,
|
||||
fix_write_privs, reduce_required_deploy_balance, reject_all_elf_rw,
|
||||
reject_deployment_of_unresolved_syscalls,
|
||||
reject_section_virtual_address_file_offset_mismatch, start_verify_shift32_imm,
|
||||
stop_verify_mul64_imm_nonzero, upgradeable_close_instruction,
|
||||
disable_bpf_deprecated_load_instructions, disable_bpf_unresolved_symbols_at_runtime,
|
||||
fix_write_privs, reduce_required_deploy_balance, upgradeable_close_instruction,
|
||||
},
|
||||
ic_logger_msg, ic_msg,
|
||||
instruction::{AccountMeta, InstructionError},
|
||||
@@ -127,15 +125,11 @@ pub fn create_executor(
|
||||
max_call_depth: bpf_compute_budget.max_call_depth,
|
||||
stack_frame_size: bpf_compute_budget.stack_frame_size,
|
||||
enable_instruction_tracing: log_enabled!(Trace),
|
||||
reject_unresolved_syscalls: reject_deployment_of_broken_elfs
|
||||
&& invoke_context.is_feature_active(&reject_deployment_of_unresolved_syscalls::id()),
|
||||
reject_section_virtual_address_file_offset_mismatch: reject_deployment_of_broken_elfs
|
||||
&& invoke_context
|
||||
.is_feature_active(&reject_section_virtual_address_file_offset_mismatch::id()),
|
||||
verify_mul64_imm_nonzero: !invoke_context
|
||||
.is_feature_active(&stop_verify_mul64_imm_nonzero::id()),
|
||||
verify_shift32_imm: invoke_context.is_feature_active(&start_verify_shift32_imm::id()),
|
||||
reject_all_writable_sections: invoke_context.is_feature_active(&reject_all_elf_rw::id()),
|
||||
disable_deprecated_load_instructions: reject_deployment_of_broken_elfs
|
||||
&& invoke_context.is_feature_active(&disable_bpf_deprecated_load_instructions::id()),
|
||||
disable_unresolved_symbols_at_runtime: invoke_context
|
||||
.is_feature_active(&disable_bpf_unresolved_symbols_at_runtime::id()),
|
||||
reject_broken_elfs: reject_deployment_of_broken_elfs,
|
||||
..Config::default()
|
||||
};
|
||||
let mut create_executor_metrics = executor_metrics::CreateMetrics::default();
|
||||
|
@@ -165,14 +165,6 @@ pub mod libsecp256k1_0_5_upgrade_enabled {
|
||||
solana_sdk::declare_id!("DhsYfRjxfnh2g7HKJYSzT79r74Afa1wbHkAgHndrA1oy");
|
||||
}
|
||||
|
||||
pub mod stop_verify_mul64_imm_nonzero {
|
||||
solana_sdk::declare_id!("EHFwHg2vhwUb7ifm7BuY9RMbsyt1rS1rUii7yeDJtGnN");
|
||||
}
|
||||
|
||||
pub mod start_verify_shift32_imm {
|
||||
solana_sdk::declare_id!("CqvdhqAYMc6Eq6tjW3H42Qg39TK2SCsL8ydMsC363PRp");
|
||||
}
|
||||
|
||||
pub mod merge_nonce_error_into_system_error {
|
||||
solana_sdk::declare_id!("21AWDosvp3pBamFW91KB35pNoaoZVTM7ess8nr2nt53B");
|
||||
}
|
||||
@@ -261,18 +253,6 @@ pub mod add_compute_budget_program {
|
||||
solana_sdk::declare_id!("4d5AKtxoh93Dwm1vHXUU3iRATuMndx1c431KgT2td52r");
|
||||
}
|
||||
|
||||
pub mod reject_deployment_of_unresolved_syscalls {
|
||||
solana_sdk::declare_id!("DqniU3MfvdpU3yhmNF1RKeaM5TZQELZuyFGosASRVUoy");
|
||||
}
|
||||
|
||||
pub mod reject_section_virtual_address_file_offset_mismatch {
|
||||
solana_sdk::declare_id!("5N4NikcJLEiZNqwndhNyvZw15LvFXp1oF7AJQTNTZY5k");
|
||||
}
|
||||
|
||||
pub mod reject_all_elf_rw {
|
||||
solana_sdk::declare_id!("DeMpxgMq51j3rZfNK2hQKZyXknQvqevPSFPJFNTbXxsS");
|
||||
}
|
||||
|
||||
pub mod spl_token_v3_3_0_release {
|
||||
solana_sdk::declare_id!("Ftok2jhqAqxUWEiCVRrfRs9DPppWP8cgTB7NQNKL88mS");
|
||||
}
|
||||
@@ -301,6 +281,14 @@ pub mod update_syscall_base_costs {
|
||||
solana_sdk::declare_id!("2h63t332mGCCsWK2nqqqHhN4U9ayyqhLVFvczznHDoTZ");
|
||||
}
|
||||
|
||||
pub mod disable_bpf_deprecated_load_instructions {
|
||||
solana_sdk::declare_id!("3XgNukcZWf9o3HdA3fpJbm94XFc4qpvTXc8h1wxYwiPi");
|
||||
}
|
||||
|
||||
pub mod disable_bpf_unresolved_symbols_at_runtime {
|
||||
solana_sdk::declare_id!("4yuaYAj2jGMGTh1sSmi4G2eFscsDq8qjugJXZoBN6YEa");
|
||||
}
|
||||
|
||||
lazy_static! {
|
||||
/// Map of feature identifiers to user-visible description
|
||||
pub static ref FEATURE_NAMES: HashMap<Pubkey, &'static str> = [
|
||||
@@ -342,8 +330,6 @@ lazy_static! {
|
||||
(neon_evm_compute_budget::id(), "bump neon_evm's compute budget"),
|
||||
(rent_for_sysvars::id(), "collect rent from accounts owned by sysvars"),
|
||||
(libsecp256k1_0_5_upgrade_enabled::id(), "upgrade libsecp256k1 to v0.5.0"),
|
||||
(stop_verify_mul64_imm_nonzero::id(), "Sets rbpf vm config verify_mul64_imm_nonzero to false"),
|
||||
(start_verify_shift32_imm::id(), "sets rbpf vm config verify_shift32_imm to true"),
|
||||
(merge_nonce_error_into_system_error::id(), "merge NonceError into SystemError"),
|
||||
(spl_token_v2_set_authority_fix::id(), "spl-token set_authority fix"),
|
||||
(stake_merge_with_unmatched_credits_observed::id(), "allow merging active stakes with unmatched credits_observed #18985"),
|
||||
@@ -366,9 +352,6 @@ lazy_static! {
|
||||
(ed25519_program_enabled::id(), "enable builtin ed25519 signature verify program"),
|
||||
(requestable_heap_size::id(), "Requestable heap frame size"),
|
||||
(add_compute_budget_program::id(), "Add compute_budget_program"),
|
||||
(reject_deployment_of_unresolved_syscalls::id(), "Reject deployment of programs with unresolved syscall symbols"),
|
||||
(reject_section_virtual_address_file_offset_mismatch::id(), "enforce section virtual addresses and file offsets in ELF to be equal"),
|
||||
(reject_all_elf_rw::id(), "reject all read-write data in program elfs"),
|
||||
(spl_token_v3_3_0_release::id(), "spl-token v3.3.0 release"),
|
||||
(reject_non_rent_exempt_vote_withdraws::id(), "fail vote withdraw instructions which leave the account non-rent-exempt"),
|
||||
(evict_invalid_stakes_cache_entries::id(), "evict invalid stakes cache entries on epoch boundaries"),
|
||||
@@ -376,6 +359,8 @@ lazy_static! {
|
||||
(reject_vote_account_close_unless_zero_credit_epoch::id(), "fail vote account withdraw to 0 unless account earned 0 credits in last completed epoch"),
|
||||
(bank_tranaction_count_fix::id(), "Fixes Bank::transaction_count to include all committed transactions, not just successful ones"),
|
||||
(update_syscall_base_costs::id(), "Update syscall base costs"),
|
||||
(disable_bpf_deprecated_load_instructions::id(), "Disable ldabs* and ldind* BPF instructions"),
|
||||
(disable_bpf_unresolved_symbols_at_runtime::id(), "Disable reporting of unresolved BPF symbols at runtime"),
|
||||
/*************** ADD NEW FEATURES HERE ***************/
|
||||
]
|
||||
.iter()
|
||||
|
Reference in New Issue
Block a user