]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: fix warnings found by nightly compiler
authorPhilippe Antoine <contact@catenacyber.fr>
Thu, 19 Nov 2020 14:50:54 +0000 (15:50 +0100)
committerVictor Julien <victor@inliniac.net>
Tue, 24 Nov 2020 14:07:40 +0000 (15:07 +0100)
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

rust/src/conf.rs

index b85eb54a43e51c0bf89ffaa495e5eb7f5a4ae404..bc3582f73ca1b42825e636eb801457612d36cec2 100644 (file)
@@ -35,7 +35,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;
         }
@@ -88,8 +89,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;
             }
@@ -110,8 +112,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;
             }