diff --git a/programs/bpf_loader/src/syscalls.rs b/programs/bpf_loader/src/syscalls.rs index 0b07a3b0c4..5cad7ee38d 100644 --- a/programs/bpf_loader/src/syscalls.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -2399,9 +2399,16 @@ impl<'a> SyscallObject for SyscallLogData<'a> { ); question_mark!( - invoke_context - .get_compute_meter() - .consume(untranslated_fields.iter().map(|e| e.len() as u64).sum()), + invoke_context.get_compute_meter().consume( + budget + .syscall_base_cost + .saturating_mul(untranslated_fields.len() as u64) + .saturating_add( + untranslated_fields + .iter() + .fold(0, |total, e| total.saturating_add(e.len() as u64)) + ) + ), result );