From: Nick Mathewson Date: Thu, 4 Jan 2018 17:20:54 +0000 (-0500) Subject: smartlist.rs: The libc::c_char type is not the same as i8. X-Git-Tag: tor-0.3.3.1-alpha~74 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1dab8bae21bc32e5d4e3ff954f4919d6506ad2e1;p=thirdparty%2Ftor.git smartlist.rs: The libc::c_char type is not the same as i8. The code had been using c_char and i8 interchangeably, but it turns out that c_char is only i8 on platforms where "char" is signed. On other platforms, c_char is u8. Fixes bug 24794; bug not on any released Tor. --- diff --git a/src/rust/smartlist/smartlist.rs b/src/rust/smartlist/smartlist.rs index ec5d7a57f5..2a822d89f4 100644 --- a/src/rust/smartlist/smartlist.rs +++ b/src/rust/smartlist/smartlist.rs @@ -33,7 +33,7 @@ impl Smartlist for Stringlist { // unsafe, as we need to extract the smartlist list into a vector of // pointers, and then transform each element into a Rust string. - let elems: &[*const i8] = + let elems: &[*const c_char] = unsafe { slice::from_raw_parts(self.list, self.num_used as usize) }; for elem in elems.iter() {