diff --git a/programs/bpf_loader/src/syscalls.rs b/programs/bpf_loader/src/syscalls.rs index 0bc3e3f5f1..b9aefbb3b1 100644 --- a/programs/bpf_loader/src/syscalls.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -2721,9 +2721,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 );