The main offender is download_more_ram() that converts 0 to a pointer.
https://github.com/Speykious/cve-rs/blob/ab0d48fd6e2f30a0cc98e5833c44148eae1e4436/src/lib.rs#L105
With std::mem::transmute this causes time-travelling UB: compiler concludes that the only way we could get 0 here is by failing unwrap() few lines prior. The simple solution would be to use 1usize and 2usize to deduce the slice pointer layout or just assume that the pointer goes first - it's not the end of the world.
This prevents removing #[inline(never)] in the implementation of transmute().
The main offender is
download_more_ram()
that converts 0 to a pointer. https://github.com/Speykious/cve-rs/blob/ab0d48fd6e2f30a0cc98e5833c44148eae1e4436/src/lib.rs#L105 Withstd::mem::transmute
this causes time-travelling UB: compiler concludes that the only way we could get0
here is by failingunwrap()
few lines prior. The simple solution would be to use1usize
and2usize
to deduce the slice pointer layout or just assume that the pointer goes first - it's not the end of the world. This prevents removing#[inline(never)]
in the implementation oftransmute()
.