Commit 42558df7 authored by cypherpunks's avatar cypherpunks
Browse files

rust/protover: return C-allocated string in protover_all_supported()

The result of CString::into_raw() is not safe to free
with free() except under finicky and fragile circumstances
that we definitely don't meet right now.

This was missed in be583a34.
parent db89b4b1
o Minor bugfixes (rust):
- Return a string that can be safely freed by C code, not one created by
the rust allocator, in protover_all_supported(). Fixes bug 27740; bugfix
......@@ -71,12 +71,7 @@ pub extern "C" fn protover_all_supported(
if missing_out.is_null() {
return 0;
let c_unsupported: CString = match CString::new(unsupported.to_string()) {
Ok(n) => n,
Err(_) => return 1,
let ptr = c_unsupported.into_raw();
let ptr = allocate_and_copy_string(&unsupported.to_string());
unsafe { *missing_out = ptr };
return 0;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment