From 8519a9af338a1ecdcdfd8b43979511960a7489e0 Mon Sep 17 00:00:00 2001 From: Jeff Lucovsky Date: Sat, 16 Jan 2021 09:34:20 -0500 Subject: [PATCH] rust/json: Rework scope for short-lived vars This commit corrects scope issues identified during CI with FC32/strict-rust: "this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime " --- rust/src/json.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/rust/src/json.rs b/rust/src/json.rs index 9c5e6fa958..d5e2db6aa4 100644 --- a/rust/src/json.rs +++ b/rust/src/json.rs @@ -79,40 +79,45 @@ impl Json { pub fn set(&self, key: &str, val: Json) { unsafe { + let s = CString::new(key).unwrap(); json_object_set_new(self.js, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), val.js); } } pub fn set_string_from_bytes(&self, key: &str, val: &[u8]) { unsafe { + let s = CString::new(key).unwrap(); json_object_set_new(self.js, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), json_string(to_cstring(val).as_ptr())); } } pub fn set_string(&self, key: &str, val: &str) { unsafe { + let s = CString::new(key).unwrap(); json_object_set_new(self.js, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), json_string(to_cstring(val.as_bytes()).as_ptr())); } } pub fn set_integer(&self, key: &str, val: u64) { unsafe { + let s = CString::new(key).unwrap(); json_object_set_new(self.js, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), json_integer(val)); } } pub fn set_boolean(&self, key: &str, val: bool) { unsafe { + let s = CString::new(key).unwrap(); json_object_set_new(self.js, - CString::new(key).unwrap().as_ptr(), + s.as_ptr(), SCJsonBool(val)); } } -- 2.47.2