diff --git a/src/platform/src/redox/mod.rs b/src/platform/src/redox/mod.rs index 1fb185bb51e2d361ad3906941796d69861e34ddc..f63870866c915fe49d3d26ebcd002218a245c975 100644 --- a/src/platform/src/redox/mod.rs +++ b/src/platform/src/redox/mod.rs @@ -205,8 +205,8 @@ pub fn unlink(path: *const c_char) -> c_int { pub fn waitpid(pid: pid_t, stat_loc: *mut c_int, options: c_int) -> pid_t { unsafe { let mut temp: usize = 0; - let mut res = e(syscall::waitpid(pid as usize, &mut temp, options as usize)); - if !stat_loc.is_null() { + let res = e(syscall::waitpid(pid as usize, &mut temp, options as usize)); + if !stat_loc.is_null() { *stat_loc = temp as c_int; } res diff --git a/tests/waitpid.c b/tests/waitpid.c index dc8fe52a614b14a558d0e61771bfb1ca90b6ecc3..79f982920706683151424c8ad8c2287b85b27dee 100644 --- a/tests/waitpid.c +++ b/tests/waitpid.c @@ -10,7 +10,7 @@ int main(int argc, char** argv) { exit(0); } else { // parent - int* stat_loc; - waitpid(pid, stat_loc, 0); + int stat_loc; + waitpid(pid, &stat_loc, 0); } }