diff --git a/programs/bpf_loader/src/syscalls/mod.rs b/programs/bpf_loader/src/syscalls/mod.rs index 32b01375cc0f99..3ea76b5daa7ed7 100644 --- a/programs/bpf_loader/src/syscalls/mod.rs +++ b/programs/bpf_loader/src/syscalls/mod.rs @@ -357,7 +357,7 @@ pub fn create_program_runtime_environment_v1<'a>( max_call_depth: compute_budget.max_call_depth, stack_frame_size: compute_budget.stack_frame_size, enable_address_translation: true, - enable_stack_frame_gaps: !feature_set.bpf_account_data_direct_mapping, + enable_stack_frame_gaps: true, instruction_meter_checkpoint_distance: 10000, enable_instruction_meter: true, enable_instruction_tracing: debugging_features, diff --git a/programs/sbf/rust/invoke/src/lib.rs b/programs/sbf/rust/invoke/src/lib.rs index b56f965f36fd4c..51a708ecf7a9aa 100644 --- a/programs/sbf/rust/invoke/src/lib.rs +++ b/programs/sbf/rust/invoke/src/lib.rs @@ -1348,7 +1348,7 @@ fn process_instruction<'a>( let stack = unsafe { slice::from_raw_parts_mut( MM_STACK_START as *mut u8, - MAX_CALL_DEPTH * STACK_FRAME_SIZE, + MAX_CALL_DEPTH * STACK_FRAME_SIZE * 2, ) }; @@ -1361,7 +1361,7 @@ fn process_instruction<'a>( // When we don't have dynamic stack frames, the stack grows from lower addresses // to higher addresses, so we compare accordingly. for i in 10..MAX_CALL_DEPTH { - let stack = &mut stack[i * STACK_FRAME_SIZE..][..STACK_FRAME_SIZE]; + let stack = &mut stack[i * STACK_FRAME_SIZE * 2..][..STACK_FRAME_SIZE]; assert!(stack == &ZEROS[..STACK_FRAME_SIZE], "stack not zeroed"); stack.fill(42); } diff --git a/svm/tests/mock_bank.rs b/svm/tests/mock_bank.rs index 0e15b7003315ff..25998d41a46be8 100644 --- a/svm/tests/mock_bank.rs +++ b/svm/tests/mock_bank.rs @@ -353,7 +353,7 @@ pub fn create_custom_loader<'a>() -> BuiltinProgram> { max_call_depth: compute_budget.max_call_depth, stack_frame_size: compute_budget.stack_frame_size, enable_address_translation: true, - enable_stack_frame_gaps: false, + enable_stack_frame_gaps: true, instruction_meter_checkpoint_distance: 10000, enable_instruction_meter: true, enable_instruction_tracing: true,