Skip to content

Commit 56011eb

Browse files
committed
chore: move sdk-token-test to sdk-tests, fix: zero out complete cpi context account
1 parent 4f294f7 commit 56011eb

33 files changed

+305
-40
lines changed

Cargo.lock

Lines changed: 286 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ members = [
3939
"program-tests/system-cpi-test",
4040
"program-tests/system-cpi-v2-test",
4141
"program-tests/system-test",
42-
"program-tests/sdk-anchor-test/programs/sdk-anchor-test",
43-
"program-tests/sdk-test",
44-
"program-tests/sdk-token-test",
45-
"program-tests/sdk-pinocchio-test",
42+
"sdk-tests/sdk-anchor-test/programs/sdk-anchor-test",
43+
"sdk-tests/sdk-test",
44+
"sdk-tests/sdk-token-test",
45+
"sdk-tests/sdk-pinocchio-test",
4646
"program-tests/create-address-test-program",
4747
"program-tests/utils",
4848
"program-tests/merkle-tree",

program-libs/zero-copy/src/vec.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use core::{
77
#[cfg(feature = "std")]
88
use std::vec::Vec;
99

10-
use zerocopy::{little_endian::U32, Ref};
10+
use zerocopy::{little_endian::U32, IntoBytes, Ref};
1111

1212
use crate::{add_padding, errors::ZeroCopyError, ZeroCopyTraits};
1313

@@ -143,6 +143,15 @@ where
143143
.unwrap();
144144
}
145145

146+
#[inline]
147+
pub fn zero_out(&mut self) {
148+
*self.get_len_mut() = 0
149+
.try_into()
150+
.map_err(|_| ZeroCopyError::InvalidConversion)
151+
.unwrap();
152+
self.slice.as_mut_bytes().fill(0);
153+
}
154+
146155
#[inline]
147156
pub fn metadata_size() -> usize {
148157
let mut size = size_of::<[L; 2]>();

programs/system/src/cpi_context/state.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,11 @@ fn deserialize_cpi_context_account_inner<'a, const CLEARED: bool>(
213213
let (mut out_accounts, data) = ZeroCopyVecU8::<'a, CpiContextOutAccount>::from_bytes_at(data)?;
214214
let (mut output_data_len, mut data) = Ref::<&'a mut [u8], U16>::from_prefix(data)?;
215215
let output_data = if CLEARED {
216-
new_addresses.clear();
217-
readonly_addresses.clear();
218-
readonly_accounts.clear();
219-
in_accounts.clear();
220-
out_accounts.clear();
216+
new_addresses.zero_out();
217+
readonly_addresses.zero_out();
218+
readonly_accounts.zero_out();
219+
in_accounts.zero_out();
220+
out_accounts.zero_out();
221221
output_data_len.set(0);
222222
// 65 CU
223223
data.fill(0);
File renamed without changes.

0 commit comments

Comments
 (0)