From a1f286bdaff6b82ff765fd2b73b69feabda9a01d Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 26 Aug 2015 00:24:20 -0700 Subject: [PATCH] don't drop uninitialised memory when pushing to stack --- src/arch/common.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arch/common.rs b/src/arch/common.rs index 465c1ca..1e9a188 100644 --- a/src/arch/common.rs +++ b/src/arch/common.rs @@ -18,7 +18,7 @@ pub unsafe fn push(spp: &mut *mut usize, value: T) -> *mut T { let mut sp = *spp as *mut T; sp = offset_mut(sp, -1); sp = align_down_mut(sp, max(align_of::(), STACK_ALIGN)); - *sp = value; + ptr::write(sp, value); // does not attempt to drop old value *spp = sp as *mut usize; sp }