From: Philippe Antoine Date: Thu, 19 Nov 2020 14:50:54 +0000 (+0100) Subject: rust: fix warnings found by nightly compiler X-Git-Tag: suricata-5.0.5~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0a1bddb168f2b82b722ef84004d0e2c321ffb65;p=thirdparty%2Fsuricata.git rust: fix warnings found by nightly compiler warning: getting the inner pointer of a temporary `CString` this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime (cherry picked from commit 8db78208f94db524c98af3f84caf6a8951e0d884) --- diff --git a/rust/src/conf.rs b/rust/src/conf.rs index e5b40f8447..92d3ccd696 100644 --- a/rust/src/conf.rs +++ b/rust/src/conf.rs @@ -37,7 +37,8 @@ pub fn conf_get(key: &str) -> Option<&str> { let mut vptr: *const c_char = ptr::null_mut(); unsafe { - if ConfGet(CString::new(key).unwrap().as_ptr(), &mut vptr) != 1 { + let s = CString::new(key).unwrap(); + if ConfGet(s.as_ptr(), &mut vptr) != 1 { SCLogDebug!("Failed to find value for key {}", key); return None; } @@ -90,8 +91,9 @@ impl ConfNode { let mut vptr: *const c_char = ptr::null_mut(); unsafe { + let s = CString::new(key).unwrap(); if ConfGetChildValue(self.conf, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), &mut vptr) != 1 { return None; } @@ -112,8 +114,9 @@ impl ConfNode { let mut vptr: c_int = 0; unsafe { + let s = CString::new(key).unwrap(); if ConfGetChildValueBool(self.conf, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), &mut vptr) != 1 { return false; }