- Reported
-
- Issued
-
- Package
-
simd-json-derive
(crates.io)
- Type
-
INFO
Unsound
- Keywords
-
#panic
#undefined-behavior
- References
-
- Patched
-
Description
An invalid use of MaybeUninit::uninit().assume_init()
in simd-json-derive
's derive macro can cause undefined behavior. The original code used MaybeUninit
to avoid initialisation of the struct and then set the fields using ptr::write
. The undefined behavior triggered by this misuse of MaybeUninit
can lead to invlaid memory access and panics in binaries compiled in release mode (aka simd-json-derive prior to version 0.12 has UB and optimizes into some nonsense)
The 0.12.0
removes this section of code, avoiding the use of MaybeUninit alltogether.
Advisory available under CC0-1.0
license.