diff --git a/src/lib.rs b/src/lib.rs
index 284f6bb5fdb2415cdb17f29c09c5e95b8dba21a1..8efc81bbc99976f6ea91dd2081ebce2a9a1f7e5d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -173,8 +173,8 @@ pub fn get_errno() -> c_int {
 ///
 /// [open], [write]
 ///
-pub fn read(fildes: c_int, mut buf: &mut [c_char], nbyte: size_t) -> ssize_t {
-    let buf: *mut c_void = &mut buf as *mut _ as *mut c_void;
+pub fn read(fildes: c_int, buf: &mut [c_char], nbyte: size_t) -> ssize_t {
+    let buf: *mut c_void = buf as *mut _ as *mut c_void;
     return unsafe { libc::read(fildes, buf, nbyte) };
 }
 
@@ -221,8 +221,8 @@ pub fn read(fildes: c_int, mut buf: &mut [c_char], nbyte: size_t) -> ssize_t {
 ///
 /// [open], [read]
 ///
-pub fn write(fildes: c_int, mut buf: &[c_char], nbyte: size_t) -> ssize_t {
-    let buf: *mut c_void = &mut buf as *mut _ as *mut c_void;
+pub fn write(fildes: c_int, buf: &[c_char], nbyte: size_t) -> ssize_t {
+    let buf: *const c_void = buf as *const _ as *const c_void;
     return unsafe { libc::write(fildes, buf, nbyte) };
 }