From a5279b648f1ca0c1c0cdc09b650b385b33f9d092 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Sun, 25 Nov 2018 10:34:02 -0700 Subject: [PATCH] Fix warnings --- src/header/stdio/ext.rs | 10 +++++----- src/header/stdlib/mod.rs | 8 ++++++-- src/header/time/mod.rs | 2 +- src/header/unistd/mod.rs | 2 +- src/macros.rs | 1 + src/platform/mod.rs | 24 ++++++++---------------- 6 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/header/stdio/ext.rs b/src/header/stdio/ext.rs index 02e9859e..35ad92ee 100644 --- a/src/header/stdio/ext.rs +++ b/src/header/stdio/ext.rs @@ -3,21 +3,21 @@ use platform::types::*; #[no_mangle] pub extern "C" fn __fpending(stream: *mut FILE) -> size_t { - let mut stream = unsafe { &mut *stream }.lock(); + let stream = unsafe { &mut *stream }.lock(); stream.writer.inner.buf.len() as size_t } #[no_mangle] pub extern "C" fn __freadable(stream: *mut FILE) -> c_int { - let mut stream = unsafe { &mut *stream }.lock(); + let stream = unsafe { &mut *stream }.lock(); (stream.flags & F_NORD == 0) as c_int } #[no_mangle] pub extern "C" fn __fwritable(stream: *mut FILE) -> c_int { - let mut stream = unsafe { &mut *stream }.lock(); + let stream = unsafe { &mut *stream }.lock(); (stream.flags & F_NOWR == 0) as c_int } @@ -25,7 +25,7 @@ pub extern "C" fn __fwritable(stream: *mut FILE) -> c_int { //TODO: Check last operation when read-write #[no_mangle] pub extern "C" fn __freading(stream: *mut FILE) -> c_int { - let mut stream = unsafe { &mut *stream }.lock(); + let stream = unsafe { &mut *stream }.lock(); (stream.flags & F_NORD == 0) as c_int } @@ -33,7 +33,7 @@ pub extern "C" fn __freading(stream: *mut FILE) -> c_int { //TODO: Check last operation when read-write #[no_mangle] pub extern "C" fn __fwriting(stream: *mut FILE) -> c_int { - let mut stream = unsafe { &mut *stream }.lock(); + let stream = unsafe { &mut *stream }.lock(); (stream.flags & F_NOWR == 0) as c_int } diff --git a/src/header/stdlib/mod.rs b/src/header/stdlib/mod.rs index 6925a2a9..cecf9063 100644 --- a/src/header/stdlib/mod.rs +++ b/src/header/stdlib/mod.rs @@ -451,7 +451,7 @@ where #[no_mangle] pub extern "C" fn mktemp(name: *mut c_char) -> *mut c_char { if inner_mktemp(name, 0, || unsafe { - let name = unsafe { CStr::from_ptr(name) }; + let name = CStr::from_ptr(name); let ret = if Sys::access(name, 0) != 0 && platform::errno == ENOENT { Some(()) } else { @@ -868,6 +868,8 @@ pub unsafe extern "C" fn strtoll( #[no_mangle] pub unsafe extern "C" fn system(command: *const c_char) -> c_int { + //TODO: share code with popen + let child_pid = unistd::fork(); if child_pid == 0 { let command_nonnull = if command.is_null() { @@ -890,13 +892,15 @@ pub unsafe extern "C" fn system(command: *const c_char) -> c_int { exit(127); unreachable!(); - } else { + } else if child_pid > 0 { let mut wstatus = 0; if Sys::waitpid(child_pid, &mut wstatus, 0) == !0 { return -1; } wstatus + } else { + -1 } } diff --git a/src/header/time/mod.rs b/src/header/time/mod.rs index cbe291bf..2be33c53 100644 --- a/src/header/time/mod.rs +++ b/src/header/time/mod.rs @@ -157,7 +157,7 @@ pub extern "C" fn getdate(string: *const c_char) -> tm { #[no_mangle] pub unsafe extern "C" fn gmtime(timer: *const time_t) -> *mut tm { - unsafe { gmtime_r(timer, &mut TM) } + gmtime_r(timer, &mut TM) } const MONTH_DAYS: [[c_int; 12]; 2] = [ diff --git a/src/header/unistd/mod.rs b/src/header/unistd/mod.rs index 201a9e0c..47d005ed 100644 --- a/src/header/unistd/mod.rs +++ b/src/header/unistd/mod.rs @@ -148,7 +148,7 @@ pub unsafe extern "C" fn execve( argv: *const *mut c_char, envp: *const *mut c_char, ) -> c_int { - let path = unsafe { CStr::from_ptr(path) }; + let path = CStr::from_ptr(path); Sys::execve(path, argv, envp) } diff --git a/src/macros.rs b/src/macros.rs index b1c42de6..39f78d5e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,6 +1,7 @@ #[macro_export] macro_rules! c_str { ($lit:expr) => { + #[allow(unused_unsafe)] unsafe { $crate::c_str::CStr::from_ptr(concat!($lit, "\0").as_ptr() as *const $crate::platform::types::c_char) diff --git a/src/platform/mod.rs b/src/platform/mod.rs index 3bd208e8..ad075cf2 100644 --- a/src/platform/mod.rs +++ b/src/platform/mod.rs @@ -122,19 +122,15 @@ impl Write for StringWriter { } impl fmt::Write for StringWriter { fn write_str(&mut self, s: &str) -> fmt::Result { - unsafe { - // can't fail - self.write(s.as_bytes()).unwrap(); - }; + // can't fail + self.write(s.as_bytes()).unwrap(); Ok(()) } } impl WriteByte for StringWriter { fn write_u8(&mut self, byte: u8) -> fmt::Result { - unsafe { - // can't fail - self.write(&[byte]).unwrap(); - } + // can't fail + self.write(&[byte]).unwrap(); Ok(()) } } @@ -159,19 +155,15 @@ impl Write for UnsafeStringWriter { } impl fmt::Write for UnsafeStringWriter { fn write_str(&mut self, s: &str) -> fmt::Result { - unsafe { - // can't fail - self.write(s.as_bytes()).unwrap(); - } + // can't fail + self.write(s.as_bytes()).unwrap(); Ok(()) } } impl WriteByte for UnsafeStringWriter { fn write_u8(&mut self, byte: u8) -> fmt::Result { - unsafe { - // can't fail - self.write(&[byte]).unwrap(); - } + // can't fail + self.write(&[byte]).unwrap(); Ok(()) } } -- GitLab