From 9e96180ce4a5693294a3af75909cd0723e79a8d4 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 8 Sep 2020 09:23:16 -0700 Subject: [PATCH] getMinimumBalanceForRentExemption now only responds to valid account lengths --- core/src/rpc.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/rpc.rs b/core/src/rpc.rs index c62cd533d9..a191ba036d 100644 --- a/core/src/rpc.rs +++ b/core/src/rpc.rs @@ -52,6 +52,7 @@ use solana_sdk::{ pubkey::Pubkey, signature::Signature, stake_history::StakeHistory, + system_instruction, sysvar::{stake_history, Sysvar}, timing::slot_duration_from_slots_per_year, transaction::{self, Transaction}, @@ -1833,6 +1834,9 @@ impl RpcSol for RpcSolImpl { "get_minimum_balance_for_rent_exemption rpc request received: {:?}", data_len ); + if data_len as u64 > system_instruction::MAX_PERMITTED_DATA_LENGTH { + return Err(Error::invalid_request()); + } Ok(meta.get_minimum_balance_for_rent_exemption(data_len, commitment)) } @@ -2539,7 +2543,7 @@ pub mod tests { message::Message, nonce, rpc_port, signature::{Keypair, Signer}, - system_instruction, system_program, system_transaction, + system_program, system_transaction, transaction::{self, TransactionError}, }; use solana_transaction_status::{EncodedTransaction, TransactionWithStatusMeta, UiMessage};