Skip to content

Commit 4865c49

Browse files
committed
fix miri reported UB with direct-threading
1 parent d3cb21d commit 4865c49

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

crates/wasmi/src/engine/executor/handler/dispatch.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@ pub fn fetch_handler(ip: Ip) -> (Ip, Handler) {
2222
(ip, handler)
2323
}
2424
false => {
25-
let (ip, handler) = unsafe { ip.decode::<usize>() };
26-
let handler = unsafe { ::core::mem::transmute::<usize, Handler>(handler) };
25+
let (ip, addr) = unsafe { ip.decode::<usize>() };
26+
let handler = unsafe {
27+
::core::mem::transmute::<*const (), Handler>(
28+
::core::ptr::with_exposed_provenance(addr)
29+
)
30+
};
2731
(ip, handler)
2832
}
2933
}

0 commit comments

Comments
 (0)