From: Nick Mathewson Date: Tue, 23 Oct 2018 23:21:44 +0000 (-0400) Subject: Merge branch 'maint-0.3.4' into maint-0.3.5 X-Git-Tag: tor-0.3.5.4-alpha~42 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=289a7dbac32a981897e12a3c250f0b6c67eec809;p=thirdparty%2Ftor.git Merge branch 'maint-0.3.4' into maint-0.3.5 --- 289a7dbac32a981897e12a3c250f0b6c67eec809 diff --cc src/rust/protover/ffi.rs index 0c28d032c6,f55b87acf6..f17f30127d --- a/src/rust/protover/ffi.rs +++ b/src/rust/protover/ffi.rs @@@ -57,17 -58,17 +57,20 @@@ pub extern "C" fn protover_all_supporte let relay_proto_entry: UnvalidatedProtoEntry = match UnvalidatedProtoEntry::from_str_any_len(relay_version) { - Ok(n) => n, - Err(_) => return 1, - }; - let maybe_unsupported: Option = relay_proto_entry.all_supported(); + Ok(n) => n, + Err(_) => return 1, + }; - if maybe_unsupported.is_some() { - let unsupported: UnvalidatedProtoEntry = maybe_unsupported.unwrap(); + if let Some(unsupported) = relay_proto_entry.all_supported() { + if missing_out.is_null() { + return 0; + } - let ptr = allocate_and_copy_string(&unsupported.to_string()); + let c_unsupported: CString = match CString::new(unsupported.to_string()) { + Ok(n) => n, + Err(_) => return 1, + }; + + let ptr = c_unsupported.into_raw(); unsafe { *missing_out = ptr }; return 0;