From 54c5423f35b6af0ce6a8e55113d50556c517ce4e Mon Sep 17 00:00:00 2001 From: Peter Limkilde Svendsen <peter.limkilde@gmail.com> Date: Thu, 9 May 2019 23:40:12 +0200 Subject: [PATCH] Avoid call to memalign() --- src/header/stdlib/mod.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/header/stdlib/mod.rs b/src/header/stdlib/mod.rs index 843ae283c..149d4dc02 100644 --- a/src/header/stdlib/mod.rs +++ b/src/header/stdlib/mod.rs @@ -1013,7 +1013,15 @@ pub unsafe extern "C" fn valloc(size: size_t) -> *mut c_void { /* _SC_PAGESIZE is a c_long and may in principle not convert * correctly to a size_t. */ match size_t::try_from(sysconf(_SC_PAGESIZE)) { - Ok(page_size) => memalign(page_size, size), + Ok(page_size) => { + /* valloc() is not supposed to be able to set errno to + * EINVAL, hence no call to memalign(). */ + let ptr = platform::alloc_align(size, page_size); + if ptr.is_null() { + platform::errno = errno::ENOMEM; + } + ptr + } Err(_) => { // A corner case. No errno setting. ptr::null_mut() -- GitLab