diff --git a/src/cache.rs b/src/cache.rs
index 930d8405090adcb4975bf8b7d9ececc7dc1f7de0..f5fa9d9c33a002c8c1a28912505c3f05497c8df7 100644
--- a/src/cache.rs
+++ b/src/cache.rs
@@ -20,7 +20,7 @@ use std::collections::HashMap;
 use std::sync::{Mutex, MutexGuard};
 
 use libc::{geteuid, seteuid, getpwnam, uid_t};
-use std::ffi::CString;
+use std::ffi::{CStr, CString};
 
 use oauth2::basic::BasicTokenResponse;
 
@@ -114,7 +114,7 @@ impl Cache {
         };
         let user_home;
         unsafe {
-           user_home = CString::from_raw((*getpwnam(nam.as_ptr())).pw_dir);
+           user_home = CStr::from_ptr((*getpwnam(nam.as_ptr())).pw_dir);
         };
 
         env::set_var("HOME", user_home.to_str().unwrap());