Skip to content

Commit

Permalink
fix test_new_from_file_crafted_executable for m1 (#26009)
Browse files Browse the repository at this point in the history
* fix test_new_from_file_crafted_executable for m1

* re-add old assert/comment, but disable for aarch64
  • Loading branch information
apfitzge authored Jun 27, 2022
1 parent 1a87b6c commit 50eb996
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions runtime/src/append_vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit 50eb996

Please sign in to comment.