From 4bfcbf75ebc4ab422ac8a9fb6b93c1a7a5b0e28a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Mei=C3=9Fner?= Date: Tue, 21 Feb 2023 18:43:34 +0100 Subject: [PATCH] Bump solana_rbpf to v0.2.39 (#30398) * Bump solana_rbpf to v0.2.39 * Adds MemoryRegion::vm_addr_end. --- Cargo.lock | 4 +-- cli/Cargo.toml | 2 +- program-runtime/Cargo.toml | 2 +- programs/bpf_loader/Cargo.toml | 2 +- programs/bpf_loader/src/syscalls/mod.rs | 45 +++++++++++++++++++++++++ programs/sbf/Cargo.lock | 4 +-- programs/sbf/Cargo.toml | 2 +- rbpf-cli/Cargo.toml | 2 +- 8 files changed, 54 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6fafcd4fa..2de1a89be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7120,9 +7120,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.2.38" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e9e5085099858adba23d0a0b5298da8803f89999cb567ecafab9c916cdf53d" +checksum = "199a2e8ced67a32b47695256509d5a62b39cb7340f52f0a5d8de99f4dc2aeb43" dependencies = [ "byteorder", "combine", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 494577e1d..d44e5d72b 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -55,7 +55,7 @@ solana-tpu-client = { path = "../tpu-client", version = "=1.16.0" } solana-transaction-status = { path = "../transaction-status", version = "=1.16.0" } solana-version = { path = "../version", version = "=1.16.0" } solana-vote-program = { path = "../programs/vote", version = "=1.16.0" } -solana_rbpf = "=0.2.38" +solana_rbpf = "=0.2.39" spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] } thiserror = "1.0.31" tiny-bip39 = "0.8.2" diff --git a/program-runtime/Cargo.toml b/program-runtime/Cargo.toml index 2ee1ad441..8999f6605 100644 --- a/program-runtime/Cargo.toml +++ b/program-runtime/Cargo.toml @@ -27,7 +27,7 @@ solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.16.0" } solana-measure = { path = "../measure", version = "=1.16.0" } solana-metrics = { path = "../metrics", version = "=1.16.0" } solana-sdk = { path = "../sdk", version = "=1.16.0" } -solana_rbpf = "=0.2.38" +solana_rbpf = "=0.2.39" thiserror = "1.0" [dev-dependencies] diff --git a/programs/bpf_loader/Cargo.toml b/programs/bpf_loader/Cargo.toml index 60f5a43ae..c444fb15d 100644 --- a/programs/bpf_loader/Cargo.toml +++ b/programs/bpf_loader/Cargo.toml @@ -19,7 +19,7 @@ solana-measure = { path = "../../measure", version = "=1.16.0" } solana-program-runtime = { path = "../../program-runtime", version = "=1.16.0" } solana-sdk = { path = "../../sdk", version = "=1.16.0" } solana-zk-token-sdk = { path = "../../zk-token-sdk", version = "=1.16.0" } -solana_rbpf = "=0.2.38" +solana_rbpf = "=0.2.39" thiserror = "1.0" [dev-dependencies] diff --git a/programs/bpf_loader/src/syscalls/mod.rs b/programs/bpf_loader/src/syscalls/mod.rs index 7b58f2c17..d78d92d76 100644 --- a/programs/bpf_loader/src/syscalls/mod.rs +++ b/programs/bpf_loader/src/syscalls/mod.rs @@ -1921,6 +1921,7 @@ mod tests { vec![MemoryRegion { host_addr: addr, vm_addr: 0x100000000, + vm_addr_end: 0x100000000_u64.saturating_add(std::mem::size_of::() as u64), len: std::mem::size_of::() as u64, vm_gap_shift: 63, is_writable: false, @@ -1943,6 +1944,7 @@ mod tests { let mut memory_region = MemoryRegion { host_addr: addr, vm_addr: 0x100000000, + vm_addr_end: 0x100000000_u64.saturating_add(std::mem::size_of::() as u64), len: std::mem::size_of::() as u64, vm_gap_shift: 63, is_writable: false, @@ -1975,6 +1977,7 @@ mod tests { vec![MemoryRegion { host_addr: addr, vm_addr: 0x100000000, + vm_addr_end: 0x100000000_u64.saturating_add(good_data.len() as u64), len: good_data.len() as u64, vm_gap_shift: 63, is_writable: false, @@ -1994,6 +1997,7 @@ mod tests { vec![MemoryRegion { host_addr: addr, vm_addr: 0x100000000, + vm_addr_end: 0x100000000_u64.saturating_add(data.len() as u64), len: data.len() as u64, vm_gap_shift: 63, is_writable: false, @@ -2028,6 +2032,7 @@ mod tests { vec![MemoryRegion { host_addr: addr, vm_addr: 0x100000000, + vm_addr_end: 0x100000000_u64.saturating_add((data.len() * size_of::()) as u64), len: (data.len() * size_of::()) as u64, vm_gap_shift: 63, is_writable: false, @@ -2052,6 +2057,8 @@ mod tests { vec![MemoryRegion { host_addr: addr, vm_addr: 0x100000000, + vm_addr_end: 0x100000000_u64 + .saturating_add((data.len() * std::mem::size_of::()) as u64), len: (data.len() * std::mem::size_of::()) as u64, vm_gap_shift: 63, is_writable: false, @@ -2077,6 +2084,7 @@ mod tests { host_addr: addr, vm_addr: 0x100000000, len: string.len() as u64, + vm_addr_end: 0x100000000_u64.saturating_add(string.len() as u64), vm_gap_shift: 63, is_writable: false, }], @@ -2143,6 +2151,7 @@ mod tests { host_addr: addr, vm_addr: 0x100000000, len: string.len() as u64, + vm_addr_end: 0x100000000_u64.saturating_add(string.len() as u64), vm_gap_shift: 63, is_writable: false, }], @@ -2201,6 +2210,7 @@ mod tests { host_addr: addr, vm_addr: 0x100000000, len: string.len() as u64, + vm_addr_end: 0x100000000_u64.saturating_add(string.len() as u64), vm_gap_shift: 63, is_writable: false, }], @@ -2328,6 +2338,7 @@ mod tests { host_addr: addr, vm_addr: 0x100000000, len: 32, + vm_addr_end: 0x100000000_u64.saturating_add(32), vm_gap_shift: 63, is_writable: false, }], @@ -2656,6 +2667,7 @@ mod tests { host_addr: bytes_to_hash.as_ptr() as *const _ as u64, vm_addr: ro_va, len: 32, + vm_addr_end: ro_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -2663,6 +2675,7 @@ mod tests { host_addr: hash_result.as_ptr() as *const _ as u64, vm_addr: rw_va, len: HASH_BYTES as u64, + vm_addr_end: rw_va.saturating_add(HASH_BYTES as u64), vm_gap_shift: 63, is_writable: true, }, @@ -2670,6 +2683,7 @@ mod tests { host_addr: bytes1.as_ptr() as *const _ as u64, vm_addr: bytes_to_hash[0].vm_addr, len: bytes1.len() as u64, + vm_addr_end: bytes_to_hash[0].vm_addr.saturating_add(bytes1.len() as u64), vm_gap_shift: 63, is_writable: false, }, @@ -2677,6 +2691,7 @@ mod tests { host_addr: bytes2.as_ptr() as *const _ as u64, vm_addr: bytes_to_hash[1].vm_addr, len: bytes2.len() as u64, + vm_addr_end: bytes_to_hash[1].vm_addr.saturating_add(bytes2.len() as u64), vm_gap_shift: 63, is_writable: false, }, @@ -2796,6 +2811,7 @@ mod tests { host_addr: valid_bytes.as_ptr() as *const _ as u64, vm_addr: valid_bytes_va, len: 32, + vm_addr_end: valid_bytes_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -2803,6 +2819,7 @@ mod tests { host_addr: invalid_bytes.as_ptr() as *const _ as u64, vm_addr: invalid_bytes_va, len: 32, + vm_addr_end: invalid_bytes_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -2893,6 +2910,7 @@ mod tests { host_addr: valid_bytes.as_ptr() as *const _ as u64, vm_addr: valid_bytes_va, len: 32, + vm_addr_end: valid_bytes_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -2900,6 +2918,7 @@ mod tests { host_addr: invalid_bytes.as_ptr() as *const _ as u64, vm_addr: invalid_bytes_va, len: 32, + vm_addr_end: invalid_bytes_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3003,6 +3022,7 @@ mod tests { host_addr: left_point.as_ptr() as *const _ as u64, vm_addr: left_point_va, len: 32, + vm_addr_end: left_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3010,6 +3030,7 @@ mod tests { host_addr: right_point.as_ptr() as *const _ as u64, vm_addr: right_point_va, len: 32, + vm_addr_end: right_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3017,6 +3038,7 @@ mod tests { host_addr: scalar.as_ptr() as *const _ as u64, vm_addr: scalar_va, len: 32, + vm_addr_end: scalar_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3024,6 +3046,7 @@ mod tests { host_addr: invalid_point.as_ptr() as *const _ as u64, vm_addr: invalid_point_va, len: 32, + vm_addr_end: invalid_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3031,6 +3054,7 @@ mod tests { host_addr: result_point.as_ptr() as *const _ as u64, vm_addr: result_point_va, len: 32, + vm_addr_end: result_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: true, }, @@ -3210,6 +3234,7 @@ mod tests { host_addr: left_point.as_ptr() as *const _ as u64, vm_addr: left_point_va, len: 32, + vm_addr_end: left_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3217,6 +3242,7 @@ mod tests { host_addr: right_point.as_ptr() as *const _ as u64, vm_addr: right_point_va, len: 32, + vm_addr_end: right_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3224,6 +3250,7 @@ mod tests { host_addr: scalar.as_ptr() as *const _ as u64, vm_addr: scalar_va, len: 32, + vm_addr_end: scalar_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3231,6 +3258,7 @@ mod tests { host_addr: invalid_point.as_ptr() as *const _ as u64, vm_addr: invalid_point_va, len: 32, + vm_addr_end: invalid_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3238,6 +3266,7 @@ mod tests { host_addr: result_point.as_ptr() as *const _ as u64, vm_addr: result_point_va, len: 32, + vm_addr_end: result_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: true, }, @@ -3433,6 +3462,7 @@ mod tests { host_addr: scalars.as_ptr() as *const _ as u64, vm_addr: scalars_va, len: 64, + vm_addr_end: scalars_va.saturating_add(64), vm_gap_shift: 63, is_writable: false, }, @@ -3440,6 +3470,7 @@ mod tests { host_addr: edwards_points.as_ptr() as *const _ as u64, vm_addr: edwards_points_va, len: 64, + vm_addr_end: edwards_points_va.saturating_add(64), vm_gap_shift: 63, is_writable: false, }, @@ -3447,6 +3478,7 @@ mod tests { host_addr: ristretto_points.as_ptr() as *const _ as u64, vm_addr: ristretto_points_va, len: 64, + vm_addr_end: ristretto_points_va.saturating_add(64), vm_gap_shift: 63, is_writable: false, }, @@ -3454,6 +3486,7 @@ mod tests { host_addr: result_point.as_ptr() as *const _ as u64, vm_addr: result_point_va, len: 32, + vm_addr_end: result_point_va.saturating_add(32), vm_gap_shift: 63, is_writable: true, }, @@ -3590,6 +3623,7 @@ mod tests { host_addr: &got_clock as *const _ as u64, vm_addr: got_clock_va, len: size_of::() as u64, + vm_addr_end: got_clock_va.saturating_add(size_of::() as u64), vm_gap_shift: 63, is_writable: true, }], @@ -3630,6 +3664,8 @@ mod tests { host_addr: &got_epochschedule as *const _ as u64, vm_addr: got_epochschedule_va, len: size_of::() as u64, + vm_addr_end: got_epochschedule_va + .saturating_add(size_of::() as u64), vm_gap_shift: 63, is_writable: true, }], @@ -3671,6 +3707,7 @@ mod tests { host_addr: &got_fees as *const _ as u64, vm_addr: got_fees_va, len: size_of::() as u64, + vm_addr_end: got_fees_va.saturating_add(size_of::() as u64), vm_gap_shift: 63, is_writable: true, }], @@ -3707,6 +3744,7 @@ mod tests { host_addr: &got_rent as *const _ as u64, vm_addr: got_rent_va, len: size_of::() as u64, + vm_addr_end: got_rent_va.saturating_add(size_of::() as u64), vm_gap_shift: 63, is_writable: true, }], @@ -3758,6 +3796,8 @@ mod tests { host_addr: mock_slices.as_ptr() as u64, vm_addr: SEEDS_VA, len: (seeds.len().saturating_mul(size_of::()) as u64), + vm_addr_end: SEEDS_VA + .saturating_add(seeds.len().saturating_mul(size_of::()) as u64), vm_gap_shift: 63, is_writable: false, }, @@ -3765,6 +3805,7 @@ mod tests { host_addr: program_id.as_ref().as_ptr() as u64, vm_addr: PROGRAM_ID_VA, len: 32, + vm_addr_end: PROGRAM_ID_VA.saturating_add(32), vm_gap_shift: 63, is_writable: false, }, @@ -3772,6 +3813,7 @@ mod tests { host_addr: address.as_ref().as_ptr() as u64, vm_addr: ADDRESS_VA, len: 32, + vm_addr_end: ADDRESS_VA.saturating_add(32), vm_gap_shift: 63, is_writable: true, }, @@ -3779,6 +3821,7 @@ mod tests { host_addr: &bump_seed as *const u8 as u64, vm_addr: BUMP_SEED_VA, len: 32, + vm_addr_end: BUMP_SEED_VA.saturating_add(32), vm_gap_shift: 63, is_writable: true, }, @@ -3795,6 +3838,7 @@ mod tests { host_addr: seed.as_ptr() as u64, vm_addr, len: seed.len() as u64, + vm_addr_end: vm_addr.saturating_add(seed.len() as u64), vm_gap_shift: 63, is_writable: false, }); @@ -3972,6 +4016,7 @@ mod tests { host_addr: memory.as_mut_ptr() as u64, vm_addr: VM_BASE_ADDRESS, len: END_OFFSET as u64, + vm_addr_end: VM_BASE_ADDRESS.saturating_add(END_OFFSET as u64), vm_gap_shift: 63, is_writable: true, }], diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 56c3f0f9e..1cf82bfdf 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -6304,9 +6304,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.2.38" +version = "0.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e9e5085099858adba23d0a0b5298da8803f89999cb567ecafab9c916cdf53d" +checksum = "199a2e8ced67a32b47695256509d5a62b39cb7340f52f0a5d8de99f4dc2aeb43" dependencies = [ "byteorder 1.4.3", "combine", diff --git a/programs/sbf/Cargo.toml b/programs/sbf/Cargo.toml index 935622fec..2fa295a92 100644 --- a/programs/sbf/Cargo.toml +++ b/programs/sbf/Cargo.toml @@ -38,7 +38,7 @@ solana-sbf-rust-realloc = { path = "rust/realloc", version = "=1.16.0" } solana-sbf-rust-realloc-invoke = { path = "rust/realloc_invoke", version = "=1.16.0" } solana-sdk = { path = "../../sdk", version = "=1.16.0" } solana-transaction-status = { path = "../../transaction-status", version = "=1.16.0" } -solana_rbpf = "=0.2.38" +solana_rbpf = "=0.2.39" [dev-dependencies] solana-ledger = { path = "../../ledger", version = "=1.16.0" } diff --git a/rbpf-cli/Cargo.toml b/rbpf-cli/Cargo.toml index fa739adad..679c999d9 100644 --- a/rbpf-cli/Cargo.toml +++ b/rbpf-cli/Cargo.toml @@ -17,4 +17,4 @@ solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.16. solana-logger = { path = "../logger", version = "=1.16.0" } solana-program-runtime = { path = "../program-runtime", version = "=1.16.0" } solana-sdk = { path = "../sdk", version = "=1.16.0" } -solana_rbpf = { version = "=0.2.38", features = ["debugger"] } +solana_rbpf = { version = "=0.2.39", features = ["debugger"] }