diff --git a/ffi/src/core_device/app_service.rs b/ffi/src/core_device/app_service.rs index aa0bfe3..3b4dcb2 100644 --- a/ffi/src/core_device/app_service.rs +++ b/ffi/src/core_device/app_service.rs @@ -477,7 +477,7 @@ pub unsafe extern "C" fn app_service_free_process_list( count: usize, ) { if !processes.is_null() && count > 0 { - let processes_slice = unsafe { std::slice::from_raw_parts_mut(processes, count) }; + let processes_slice = unsafe { Vec::from_raw_parts(processes, count, count) }; for process in processes_slice { if !process.executable_url.is_null() { let _ = unsafe { CString::from_raw(process.executable_url) }; diff --git a/ffi/src/lib.rs b/ffi/src/lib.rs index 4e5f67d..d237ed5 100644 --- a/ffi/src/lib.rs +++ b/ffi/src/lib.rs @@ -414,7 +414,7 @@ pub unsafe extern "C" fn idevice_string_free(string: *mut c_char) { #[unsafe(no_mangle)] pub unsafe extern "C" fn idevice_data_free(data: *mut u8, len: usize) { if !data.is_null() { - let _ = unsafe { std::slice::from_raw_parts(data, len) }; + let _ = unsafe { Vec::from_raw_parts(data, len, len) }; } }