Open
Description
Hi, I am scanning the ewasm_api in the latest version with my own static analyzer tool.
Unsafe conversion found at: src/lib.rs#L426
let ret = unsafe {
native::ethereum_create(
value.bytes.as_ptr() as *const u32,
data.as_ptr() as *const u32,
data.len() as u32,
address.bytes.as_mut_ptr() as *const u32,
)
};
This unsound implementation would create a misalignment issues if the type size of bytes
is smaller than the type size of u32
.
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.
Metadata
Metadata
Assignees
Labels
No labels