diff --git a/src/string/src/lib.rs b/src/string/src/lib.rs
index 96688cac3c5641454144822c2a8e03e0f24d20b3..da667794b1c43494e766dafe6ec22212c12aa261 100644
--- a/src/string/src/lib.rs
+++ b/src/string/src/lib.rs
@@ -29,10 +29,10 @@ pub unsafe extern "C" fn memccpy(
     }
     let src = src as *mut u8;
     let dist = (to as usize) - (src as usize);
-    if memcpy(dest, src, dist) as usize > 0 {
-        return dest.offset(dist as isize + 1) as *mut c_void;
+    if memcpy(dest, src, dist).is_null() {
+        return ptr::null_mut();
     }
-    ptr::null_mut()
+    dest.offset(dist as isize + 1) as *mut c_void
 }
 
 #[no_mangle]