getMinimumBalanceForRentExemption now only responds to valid account lengths (#12116)

(cherry picked from commit 9e96180ce4)

Co-authored-by: Michael Vines <mvines@gmail.com>
This commit is contained in:
mergify[bot]
2020-09-08 18:50:22 +00:00
committed by GitHub
parent d1fdc96969
commit d26a809f1f

View File

@ -52,6 +52,7 @@ use solana_sdk::{
pubkey::Pubkey, pubkey::Pubkey,
signature::Signature, signature::Signature,
stake_history::StakeHistory, stake_history::StakeHistory,
system_instruction,
sysvar::{stake_history, Sysvar}, sysvar::{stake_history, Sysvar},
timing::slot_duration_from_slots_per_year, timing::slot_duration_from_slots_per_year,
transaction::{self, Transaction}, transaction::{self, Transaction},
@ -1838,6 +1839,9 @@ impl RpcSol for RpcSolImpl {
"get_minimum_balance_for_rent_exemption rpc request received: {:?}", "get_minimum_balance_for_rent_exemption rpc request received: {:?}",
data_len 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)) Ok(meta.get_minimum_balance_for_rent_exemption(data_len, commitment))
} }
@ -2544,7 +2548,7 @@ pub mod tests {
message::Message, message::Message,
nonce, rpc_port, nonce, rpc_port,
signature::{Keypair, Signer}, signature::{Keypair, Signer},
system_instruction, system_program, system_transaction, system_program, system_transaction,
transaction::{self, TransactionError}, transaction::{self, TransactionError},
}; };
use solana_transaction_status::{EncodedTransaction, TransactionWithStatusMeta, UiMessage}; use solana_transaction_status::{EncodedTransaction, TransactionWithStatusMeta, UiMessage};