Don't depend on user modifiable data to parse paramter buffer (#8022)
This commit is contained in:
		| @@ -94,10 +94,10 @@ pub fn deserialize_parameters( | |||||||
|     assert_eq!(32, mem::size_of::<Pubkey>()); |     assert_eq!(32, mem::size_of::<Pubkey>()); | ||||||
|  |  | ||||||
|     let mut start = mem::size_of::<u64>(); // number of accounts |     let mut start = mem::size_of::<u64>(); // number of accounts | ||||||
|     for keyed_account in keyed_accounts.iter() { |     for (i, keyed_account) in keyed_accounts.iter().enumerate() { | ||||||
|         let duplicate = buffer[start] != 0; // duplicate info |         let (is_dup, _) = is_dup(&keyed_accounts[..i], keyed_account); | ||||||
|         start += 1; |         start += 1; // is_dup | ||||||
|         if !duplicate { |         if !is_dup { | ||||||
|             start += mem::size_of::<u64>(); // is_signer |             start += mem::size_of::<u64>(); // is_signer | ||||||
|             start += mem::size_of::<Pubkey>(); // pubkey |             start += mem::size_of::<Pubkey>(); // pubkey | ||||||
|             keyed_account.try_account_ref_mut()?.lamports = |             keyed_account.try_account_ref_mut()?.lamports = | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user