Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gists-immunefi/c0b9530c99588cc691de54682318d0d3 to your computer and use it in GitHub Desktop.
Save gists-immunefi/c0b9530c99588cc691de54682318d0d3 to your computer and use it in GitHub Desktop.
pub(crate) fn copy_from_slice_zero_fill<A: ToAddr, B: ToAddr>(
memory: &mut Memory,
owner: H160,
src: &[u8],
dst_addr: A,
src_offset: usize,
len: usize,
) -> Result<(), Error> {
let range = memory.write(owner, dst_addr, len)?;
let src_end = src_offset.saturating_add(range.len()).min(src.len());
let data = src.get(src_offset..src_end).unwrap_or_default();
range[..data.len()].copy_from_slice(data);
range[data.len()..].fill(0);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment