You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been experimenting with a version of Miri that can execute foreign functions by interpreting the LLVM bytecode that is produced during a crate's build process. We're hoping that our results can assist with the Krabcake project.
Miri reports the following memory leak when executing the test test_z85:
error: memory leaked: alloc24744 (Rust heap, size: 41, align: 1), allocated here:
--> .../rust/library/alloc/src/alloc.rs:98:9
|
98 | __rust_alloc(layout.size(), layout.align())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: inside `std::alloc::alloc` at .../rust/library/alloc/src/alloc.rs:98:9: 98:52
= note: inside `std::alloc::Global::alloc_impl` at .../rust/library/alloc/src/alloc.rs:181:73: 181:86
= note: inside `<std::alloc::Global as std::alloc::Allocator>::allocate` at .../rust/library/alloc/src/alloc.rs:241:9: 241:39
= note: inside `alloc::raw_vec::RawVec::<u8>::allocate_in` at .../rust/library/alloc/src/raw_vec.rs:184:45: 184:67
= note: inside `alloc::raw_vec::RawVec::<u8>::with_capacity_in` at .../rust/library/alloc/src/raw_vec.rs:130:9: 130:69
= note: inside `std::vec::Vec::<u8>::with_capacity_in` at .../rust/library/alloc/src/vec/mod.rs:670:20: 670:61
= note: inside `std::vec::Vec::<u8>::with_capacity` at .../rust/library/alloc/src/vec/mod.rs:479:9: 479:49
= note: inside `std::ffi::CString::new::spec_new_impl_bytes` at .../rust/library/alloc/src/ffi/c_str.rs:287:30: 287:58
= note: inside `<&str as std::ffi::CString::new::SpecNewImpl>::spec_new_impl` at .../rust/library/alloc/src/ffi/c_str.rs:306:17: 306:53
= note: inside `std::ffi::CString::new::<&str>` at .../rust/library/alloc/src/ffi/c_str.rs:316:9: 316:26
note: inside `zmq::z85_decode`
--> /home/icmccorm/git/investigation/zmq/src/lib.rs:1343:17
|
1343 | let c_str = ffi::CString::new(data)?;
| ^^^^^^^^^^^^^^^^^^^^^^^
note: inside `test_z85`
--> tests/z85.rs:10:19
|
10 | let decoded = z85_decode(test_str).unwrap();
| ^^^^^^^^^^^^^^^^^^^^
It appears that this is caused by the use of CString::into_raw on line 1346 of src/lib.rs
I've been experimenting with a version of Miri that can execute foreign functions by interpreting the LLVM bytecode that is produced during a crate's build process. We're hoping that our results can assist with the Krabcake project.
Miri reports the following memory leak when executing the test
test_z85
:It appears that this is caused by the use of
CString::into_raw
on line 1346 of src/lib.rsSince this pointer is never re-wrapped using
CString::from_raw
, the underlying memory is leaked.The text was updated successfully, but these errors were encountered: