diff --git a/src/header/pthread/mod.rs b/src/header/pthread/mod.rs index f71244a6a88ca87246700c10b5cc55f56513e4f0..81e026ef70c4af59419fb0b92d551402fffa639d 100644 --- a/src/header/pthread/mod.rs +++ b/src/header/pthread/mod.rs @@ -145,7 +145,9 @@ pub use tls::*; pub unsafe extern "C" fn pthread_join(thread: pthread_t, retval: *mut *mut c_void) -> c_int { match pthread::join(&*thread.cast()) { Ok(pthread::Retval(ret)) => { - core::ptr::write(retval, ret); + if !retval.is_null() { + core::ptr::write(retval, ret); + } 0 } Err(pthread::Errno(error)) => error,