Fix test: Prevent SystemInstruction CreateAccount from overwriting accounts in use
This commit is contained in:
parent
202adb1bf1
commit
f506b0a224
|
@ -36,15 +36,21 @@ pub fn entrypoint(
|
|||
Err(ProgramError::InvalidArgument)?;
|
||||
}
|
||||
|
||||
if space > 0
|
||||
&& (!keyed_accounts[to].account.userdata.is_empty()
|
||||
|| !system_program::check_id(&keyed_accounts[to].account.owner))
|
||||
if !keyed_accounts[to].account.userdata.is_empty()
|
||||
|| !system_program::check_id(&keyed_accounts[to].account.owner)
|
||||
{
|
||||
if space > 0 {
|
||||
info!(
|
||||
"CreateAccount: invalid argument space: {} accounts.userdata.len(): {}",
|
||||
space,
|
||||
keyed_accounts[to].account.userdata.len(),
|
||||
);
|
||||
} else {
|
||||
info!(
|
||||
"CreateAccount: invalid argument; account {} already in use",
|
||||
keyed_accounts[to].unsigned_key()
|
||||
);
|
||||
}
|
||||
Err(ProgramError::InvalidArgument)?;
|
||||
}
|
||||
if tokens > keyed_accounts[from].account.tokens {
|
||||
|
|
|
@ -59,9 +59,9 @@ fn test_create_cannot_overwrite_used_account() {
|
|||
);
|
||||
|
||||
// create_account on an initialized account should fail
|
||||
system_bank
|
||||
assert!(system_bank
|
||||
.create_account(&from_keypair, other_account, 100)
|
||||
.unwrap();
|
||||
.is_err());
|
||||
assert_eq!(system_bank.bank.get_balance(&other_account), 1);
|
||||
assert_eq!(
|
||||
system_bank.bank.get_account(&other_account).unwrap().owner,
|
||||
|
|
Loading…
Reference in New Issue