From c4943f3cb092835f6673f99c60a4c9fbffd637f8 Mon Sep 17 00:00:00 2001 From: "Jeff Washington (jwash)" <75863576+jeffwashington@users.noreply.github.com> Date: Fri, 30 Apr 2021 09:56:34 -0500 Subject: [PATCH] checked_sub_lamports (#16932) --- runtime/src/accounts.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runtime/src/accounts.rs b/runtime/src/accounts.rs index bddcab37ae..72afd3a8f0 100644 --- a/runtime/src/accounts.rs +++ b/runtime/src/accounts.rs @@ -17,7 +17,7 @@ use dashmap::{ use log::*; use rand::{thread_rng, Rng}; use solana_sdk::{ - account::{Account, AccountSharedData, ReadableAccount}, + account::{Account, AccountSharedData, ReadableAccount, WritableAccount}, account_utils::StateMut, bpf_loader_upgradeable::{self, UpgradeableLoaderState}, clock::{Slot, INITIAL_RENT_EPOCH}, @@ -287,7 +287,9 @@ impl Accounts { error_counters.insufficient_funds += 1; Err(TransactionError::InsufficientFundsForFee) } else { - accounts[payer_index].lamports -= fee; + accounts[payer_index] + .checked_sub_lamports(fee) + .map_err(|_| TransactionError::InsufficientFundsForFee)?; let message = tx.message(); let loaders = message