diff --git a/programs/bpf_loader/src/syscalls.rs b/programs/bpf_loader/src/syscalls.rs index 66fb96ead0..eb65132d23 100644 --- a/programs/bpf_loader/src/syscalls.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -1270,7 +1270,10 @@ fn check_instruction_size( data_len: usize, max_size: usize, ) -> Result<(), EbpfError> { - if max_size < num_accounts * size_of::() + data_len { + let size = num_accounts + .saturating_mul(size_of::()) + .saturating_add(data_len); + if size > max_size { return Err( SyscallError::InstructionError(InstructionError::ComputationalBudgetExceeded).into(), );