From 78f425744f2809924844307bdece80bc935b2af7 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sun, 28 Oct 2018 08:51:47 -0700 Subject: [PATCH] Don't pass 0-length mallocs to system allocator Part of the unsafe contract! --- src/lib.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 1c5ce6ea..4160a89c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -827,9 +827,13 @@ pub mod __rt { let align = mem::align_of::(); if let Ok(layout) = Layout::from_size_align(size, align) { unsafe { - let ptr = alloc(layout); - if !ptr.is_null() { - return ptr + if layout.size() > 0 { + let ptr = alloc(layout); + if !ptr.is_null() { + return ptr + } + } else { + return align as *mut u8 } } }