From 859310a3708b9e7708f1b01fed42e8834917bfa7 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Tue, 22 Nov 2022 11:52:35 +0100 Subject: [PATCH] ensure current getrandom works with strict provenance --- src/tools/miri/test_dependencies/Cargo.toml | 2 +- src/tools/miri/tests/pass-dep/getrandom_1.rs | 8 ++++++++ src/tools/miri/tests/pass-dep/random.rs | 8 +++----- ...t-isolation.rs => libc-getrandom-without-isolation.rs} | 0 .../shims/{linux-getrandom.rs => libc-getrandom.rs} | 0 5 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 src/tools/miri/tests/pass-dep/getrandom_1.rs rename src/tools/miri/tests/pass-dep/shims/{linux-getrandom-without-isolation.rs => libc-getrandom-without-isolation.rs} (100%) rename src/tools/miri/tests/pass-dep/shims/{linux-getrandom.rs => libc-getrandom.rs} (100%) diff --git a/src/tools/miri/test_dependencies/Cargo.toml b/src/tools/miri/test_dependencies/Cargo.toml index 58f731f91d0f..d8c70935fb14 100644 --- a/src/tools/miri/test_dependencies/Cargo.toml +++ b/src/tools/miri/test_dependencies/Cargo.toml @@ -15,7 +15,7 @@ page_size = "0.4.1" num_cpus = "1.10.1" getrandom_1 = { package = "getrandom", version = "0.1" } -getrandom_2 = { package = "getrandom", version = "0.2" } +getrandom = { version = "0.2" } rand = { version = "0.8", features = ["small_rng"] } [workspace] diff --git a/src/tools/miri/tests/pass-dep/getrandom_1.rs b/src/tools/miri/tests/pass-dep/getrandom_1.rs new file mode 100644 index 000000000000..2c7bd93fbdb3 --- /dev/null +++ b/src/tools/miri/tests/pass-dep/getrandom_1.rs @@ -0,0 +1,8 @@ +// mac-os `getrandom_1` does some pointer shenanigans +//@compile-flags: -Zmiri-permissive-provenance + +/// Test old version of `getrandom`. +fn main() { + let mut data = vec![0; 16]; + getrandom_1::getrandom(&mut data).unwrap(); +} diff --git a/src/tools/miri/tests/pass-dep/random.rs b/src/tools/miri/tests/pass-dep/random.rs index 5eccf3b0ea11..0cd8b06d63d8 100644 --- a/src/tools/miri/tests/pass-dep/random.rs +++ b/src/tools/miri/tests/pass-dep/random.rs @@ -1,12 +1,10 @@ -// mac-os `getrandom_1` does some pointer shenanigans -//@compile-flags: -Zmiri-permissive-provenance +//@compile-flags: -Zmiri-strict-provenance use rand::{rngs::SmallRng, Rng, SeedableRng}; fn main() { - // Test `getrandom` directly (in multiple different versions). + // Test `getrandom` directly. let mut data = vec![0; 16]; - getrandom_1::getrandom(&mut data).unwrap(); - getrandom_2::getrandom(&mut data).unwrap(); + getrandom::getrandom(&mut data).unwrap(); // Try seeding with "real" entropy. let mut rng = SmallRng::from_entropy(); diff --git a/src/tools/miri/tests/pass-dep/shims/linux-getrandom-without-isolation.rs b/src/tools/miri/tests/pass-dep/shims/libc-getrandom-without-isolation.rs similarity index 100% rename from src/tools/miri/tests/pass-dep/shims/linux-getrandom-without-isolation.rs rename to src/tools/miri/tests/pass-dep/shims/libc-getrandom-without-isolation.rs diff --git a/src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs b/src/tools/miri/tests/pass-dep/shims/libc-getrandom.rs similarity index 100% rename from src/tools/miri/tests/pass-dep/shims/linux-getrandom.rs rename to src/tools/miri/tests/pass-dep/shims/libc-getrandom.rs