Hi, I am scanning the mrusty in the latest version with my own static analyzer tool.
Unsafe conversion found at: src/mruby.rs#L1184
extern "C" fn run_protected(mrb: *const MrState, data: MrValue) -> MrValue {
unsafe {
let ptr = data.to_ptr().unwrap();
let args = *mem::transmute::<*const u8, *const [*const u8; 3]>(ptr);
This unsound implementation would create a misalignment issues if the type size of u8 is smaller than the type size of [u8; 3].
This would potentially cause undefined behaviors in Rust. If we further manipulate the problematic converted types, it would potentially lead to different consequences such as access out-of-bound. I am reporting this issue for your attention.
Hi, I am scanning the mrusty in the latest version with my own static analyzer tool.
Unsafe conversion found at: src/mruby.rs#L1184
This unsound implementation would create a misalignment issues if the type size of
u8is smaller than the type size of[u8; 3].This would potentially cause undefined behaviors in Rust. If we further manipulate the problematic converted types, it would potentially lead to different consequences such as access out-of-bound. I am reporting this issue for your attention.