From 50eb9965abb379d5ed7cb8ff0b0d7fd3892cf146 Mon Sep 17 00:00:00 2001 From: apfitzge Date: Mon, 27 Jun 2022 13:03:52 -0400 Subject: [PATCH] fix test_new_from_file_crafted_executable for m1 (#26009) * fix test_new_from_file_crafted_executable for m1 * re-add old assert/comment, but disable for aarch64 --- runtime/src/append_vec.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/runtime/src/append_vec.rs b/runtime/src/append_vec.rs index d4a690d37ddf17..0e50ccec7dd046 100644 --- a/runtime/src/append_vec.rs +++ b/runtime/src/append_vec.rs @@ -879,15 +879,21 @@ pub mod tests { let accounts = av.accounts(0); let account = accounts.first().unwrap(); + // upper 7-bits are not 0, so sanitization should fail + assert!(!account.sanitize_executable()); + // we can observe crafted value by ref { let executable_bool: &bool = &account.account_meta.executable; // Depending on use, *executable_bool can be truthy or falsy due to direct memory manipulation // assert_eq! thinks *executable_bool is equal to false but the if condition thinks it's not, contradictorily. assert!(!*executable_bool); - const FALSE: bool = false; // keep clippy happy - if *executable_bool == FALSE { - panic!("This didn't occur if this test passed."); + #[cfg(not(target_arch = "aarch64"))] + { + const FALSE: bool = false; // keep clippy happy + if *executable_bool == FALSE { + panic!("This didn't occur if this test passed."); + } } assert_eq!(*account.ref_executable_byte(), crafted_executable); }