about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChayim Refael Friedman <chayimfr@gmail.com>2025-04-16 16:56:45 +0300
committerChayim Refael Friedman <chayimfr@gmail.com>2025-04-16 16:56:45 +0300
commit6ac25306fddb5bbf8637d8cf1376cd691e56c52f (patch)
treec903bcd88ae69b292aff7c2452707907c602e541
parentc7f35adaafad6e93e395fc2327ff8b06477642e5 (diff)
downloadrust-6ac25306fddb5bbf8637d8cf1376cd691e56c52f.tar.gz
rust-6ac25306fddb5bbf8637d8cf1376cd691e56c52f.zip
Fix signature of libc memory usage function on Linux
A soundness issue!
-rw-r--r--src/tools/rust-analyzer/crates/profile/src/memory_usage.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/profile/src/memory_usage.rs b/src/tools/rust-analyzer/crates/profile/src/memory_usage.rs
index f5b8eca060f..1462259d627 100644
--- a/src/tools/rust-analyzer/crates/profile/src/memory_usage.rs
+++ b/src/tools/rust-analyzer/crates/profile/src/memory_usage.rs
@@ -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) }
     }