From 97e67cbfd7afb291425acbe0a0d6d8e184337c15 Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Wed, 3 Jul 2019 18:17:34 +0200 Subject: [PATCH] Use `MAP_FAILED`. --- src/memory/mmap_bytebuf.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/memory/mmap_bytebuf.rs b/src/memory/mmap_bytebuf.rs index ee6478e..e725b91 100644 --- a/src/memory/mmap_bytebuf.rs +++ b/src/memory/mmap_bytebuf.rs @@ -58,19 +58,13 @@ impl Mmap { ) }; - match ptr_or_err as usize { - // `mmap` returns -1 in case of an error. - // `mmap` shouldn't return 0 since it has a special meaning for compilers. - // + match ptr_or_err { // With the current parameters, the error can only be returned in case of insufficient // memory. - x if x == 0 || x as isize == -1 => Err("mmap returned error"), + libc::MAP_FAILED => Err("mmap returned an error"), _ => { - let ptr = unsafe { - // Safety Proof: - // the ptr cannot be null as checked within the enclosing match. - NonNull::new_unchecked(ptr_or_err as *mut u8) - }; + let ptr = NonNull::new(ptr_or_err as *mut u8) + .ok_or("mmap returned 0")?; Ok(Self { ptr, len }) } }