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)?;
|
Err(ProgramError::InvalidArgument)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if space > 0
|
if !keyed_accounts[to].account.userdata.is_empty()
|
||||||
&& (!keyed_accounts[to].account.userdata.is_empty()
|
|| !system_program::check_id(&keyed_accounts[to].account.owner)
|
||||||
|| !system_program::check_id(&keyed_accounts[to].account.owner))
|
|
||||||
{
|
{
|
||||||
|
if space > 0 {
|
||||||
info!(
|
info!(
|
||||||
"CreateAccount: invalid argument space: {} accounts.userdata.len(): {}",
|
"CreateAccount: invalid argument space: {} accounts.userdata.len(): {}",
|
||||||
space,
|
space,
|
||||||
keyed_accounts[to].account.userdata.len(),
|
keyed_accounts[to].account.userdata.len(),
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
info!(
|
||||||
|
"CreateAccount: invalid argument; account {} already in use",
|
||||||
|
keyed_accounts[to].unsigned_key()
|
||||||
|
);
|
||||||
|
}
|
||||||
Err(ProgramError::InvalidArgument)?;
|
Err(ProgramError::InvalidArgument)?;
|
||||||
}
|
}
|
||||||
if tokens > keyed_accounts[from].account.tokens {
|
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
|
// create_account on an initialized account should fail
|
||||||
system_bank
|
assert!(system_bank
|
||||||
.create_account(&from_keypair, other_account, 100)
|
.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_balance(&other_account), 1);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
system_bank.bank.get_account(&other_account).unwrap().owner,
|
system_bank.bank.get_account(&other_account).unwrap().owner,
|
||||||
|
|
Loading…
Reference in New Issue