Function ffi_support::rust_string_from_c [−][src]
pub unsafe fn rust_string_from_c(c_string: *const c_char) -> String
👎 Deprecated since 0.3.0:
Please use FfiStr::into_string instead
Convert a null-terminated C into an owned rust string, replacing invalid UTF-8 with the unicode replacement character.
Safety
This is unsafe because we dereference a raw pointer, which may or may not be valid.
We also assume c_string
is a null terminated string, and have no way of knowing if that’s
actually true. If it’s not, we’ll read arbitrary memory from the heap until we see a ‘\0’, which
can result in a enormous number of problems.
Panics
Panics if it’s argument is null. See also opt_rust_string_from_c
, which returns None
instead.
Note: This means it’s forbidden to call this outside of a call_with_result
(or something else
that uses std::panic::catch_unwind
), as it is UB to panic across the FFI boundary.