Fix signature of libc memory usage function on Linux

A soundness issue!
This commit is contained in:
Chayim Refael Friedman 2025-04-16 16:56:45 +03:00
parent c7f35adaaf
commit 6ac25306fd

View file

@ -78,7 +78,8 @@ fn memusage_linux() -> MemoryUsage {
let alloc = unsafe { libc::mallinfo() }.uordblks as isize;
MemoryUsage { allocated: Bytes(alloc) }
} else {
let mallinfo2: fn() -> libc::mallinfo2 = unsafe { std::mem::transmute(mallinfo2) };
let mallinfo2: extern "C" fn() -> libc::mallinfo2 =
unsafe { std::mem::transmute(mallinfo2) };
let alloc = mallinfo2().uordblks as isize;
MemoryUsage { allocated: Bytes(alloc) }
}