Ptr
type needs to handle zero-sized types
#874
Labels
blocking-next-release
This issue should be resolved before we release on crates.io
Progress
Details
Credit to @djkoloski for noticing this issue.
Currently, the
Ptr
type's internal invariants require that the pointer point to a valid allocation. However, theptr
module docs imply that zero-sized accesses do not require a pointer to a valid allocation. This is problematic for us, since it implies that Rust could generate a reference to a ZST which does not point to an allocation. Thus, our impl ofFrom<&T> for Ptr<T>
might be unsound (albeit in a way that isn't currently exercisable): it promises that, based on the fact that&T
is a reference, it must refer to a valid allocation. IfT
is a ZST, that implication might not hold.We should do the following:
The text was updated successfully, but these errors were encountered: