From ebac00fbdef4ec1bcc5f94495b727657890834ab Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Thu, 12 Sep 2019 03:56:18 +0000 Subject: [PATCH] Use safe version of `dc_write_file` * src/key.rs(write_asc_to_file): simplify code using safe version of dc_write_file() function --- src/key.rs | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/src/key.rs b/src/key.rs index 3ccddc8e5..bea68196f 100644 --- a/src/key.rs +++ b/src/key.rs @@ -223,25 +223,14 @@ impl Key { return false; } - let file_content = self.to_asc(None); - let file_content_c = CString::new(file_content).unwrap(); + let file_content = self.to_asc(None).into_bytes(); - let success = if 0 - == unsafe { - dc_write_file( - context, - file, - file_content_c.as_ptr() as *const libc::c_void, - file_content_c.as_bytes().len(), - ) - } { - error!(context, "Cannot write key to {}", to_string(file)); - false + if dc_write_file_safe(context, as_path(file), &file_content) { + return true; } else { - true - }; - - success + error!(context, "Cannot write key to {}", as_str(file)); + return false; + } } pub fn fingerprint(&self) -> String {