Gate pointer alignment enforcement (bp #12176) (#12188)

* Gate pointer alignment enforcement (#12176)

(cherry picked from commit ae7b15f062)

# Conflicts:
#	programs/bpf/tests/programs.rs

* Fix conflicts

Co-authored-by: Jack May <jack@solana.com>
This commit is contained in:
mergify[bot]
2020-09-12 00:06:39 +00:00
committed by GitHub
parent 61dcab8c07
commit 8dc019ae98
4 changed files with 258 additions and 132 deletions

View File

@@ -1664,7 +1664,7 @@ checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
[[package]]
name = "solana-bpf-loader-program"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bincode",
"byteorder 1.3.4",
@@ -1678,7 +1678,7 @@ dependencies = [
[[package]]
name = "solana-bpf-programs"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bincode",
"byteorder 1.3.4",
@@ -1693,7 +1693,7 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-128bit"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-bpf-rust-128bit-dep",
"solana-sdk",
@@ -1701,21 +1701,21 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-128bit-dep"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-alloc"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-dep-crate"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"byteorder 1.3.4",
"solana-sdk",
@@ -1723,21 +1723,21 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-deprecated_loader"
version = "1.4.0"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-dup-accounts"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-error-handling"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"num-derive 0.2.5",
"num-traits",
@@ -1747,14 +1747,14 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-external-spend"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-invoke"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-bpf-rust-invoked",
"solana-sdk",
@@ -1762,21 +1762,21 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-invoked"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-iter"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-many-args"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-bpf-rust-many-args-dep",
"solana-sdk",
@@ -1784,28 +1784,28 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-many-args-dep"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-noop"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-panic"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-param-passing"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-bpf-rust-param-passing-dep",
"solana-sdk",
@@ -1813,21 +1813,21 @@ dependencies = [
[[package]]
name = "solana-bpf-rust-param-passing-dep"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-bpf-rust-sysval"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"solana-sdk",
]
[[package]]
name = "solana-config-program"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bincode",
"chrono",
@@ -1839,7 +1839,7 @@ dependencies = [
[[package]]
name = "solana-crate-features"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"backtrace",
"bytes 0.4.12",
@@ -1862,7 +1862,7 @@ dependencies = [
[[package]]
name = "solana-logger"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"env_logger",
"lazy_static",
@@ -1871,7 +1871,7 @@ dependencies = [
[[package]]
name = "solana-measure"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"jemalloc-ctl",
"jemallocator",
@@ -1882,7 +1882,7 @@ dependencies = [
[[package]]
name = "solana-metrics"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"env_logger",
"gethostname",
@@ -1894,7 +1894,7 @@ dependencies = [
[[package]]
name = "solana-rayon-threadlimit"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"lazy_static",
"num_cpus",
@@ -1902,7 +1902,7 @@ dependencies = [
[[package]]
name = "solana-runtime"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bincode",
"blake3",
@@ -1947,7 +1947,7 @@ dependencies = [
[[package]]
name = "solana-sdk"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"assert_matches",
"bincode",
@@ -1984,7 +1984,7 @@ dependencies = [
[[package]]
name = "solana-sdk-macro"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bs58",
"proc-macro2 1.0.19",
@@ -1995,7 +1995,7 @@ dependencies = [
[[package]]
name = "solana-sdk-macro-frozen-abi"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"lazy_static",
"proc-macro2 1.0.19",
@@ -2006,7 +2006,7 @@ dependencies = [
[[package]]
name = "solana-stake-program"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bincode",
"log",
@@ -2025,7 +2025,7 @@ dependencies = [
[[package]]
name = "solana-vote-program"
version = "1.3.9"
version = "1.3.10"
dependencies = [
"bincode",
"log",

View File

@@ -15,7 +15,7 @@ use solana_runtime::{
loader_utils::load_program,
};
use solana_sdk::{
account::{create_keyed_readonly_accounts, Account, KeyedAccount},
account::{create_keyed_readonly_accounts, Account},
bpf_loader, bpf_loader_deprecated,
client::SyncClient,
entrypoint::SUCCESS,
@@ -92,12 +92,12 @@ fn bench_program_alu(bencher: &mut Bencher) {
.write_u64::<LittleEndian>(ARMSTRONG_LIMIT)
.unwrap();
inner_iter.write_u64::<LittleEndian>(0).unwrap();
let loader_id = bpf_loader::id();
let mut invoke_context = MockInvokeContext::default();
let elf = load_elf("bench_alu").unwrap();
let (mut vm, _) =
solana_bpf_loader_program::create_vm(&bpf_loader::id(), &elf, &[], &mut invoke_context)
.unwrap();
solana_bpf_loader_program::create_vm(&loader_id, &elf, &[], &mut invoke_context).unwrap();
println!("Interpreted:");
assert_eq!(