forked from maidsafe-archive/get_if_addrs
-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
The source of unsoundness
Hi, we found that two safe functions created misaligned pointers and dereference:
Lines 99 to 108 in 947c634
| #[allow(unsafe_code)] | |
| #[allow(clippy::cast_ptr_alignment)] | |
| fn sa_in(&self) -> sockaddr_in { | |
| unsafe { *(self.inner.as_ptr() as *const sockaddr_in) } | |
| } | |
| #[allow(unsafe_code)] | |
| #[allow(clippy::cast_ptr_alignment)] | |
| fn sa_in6(&self) -> sockaddr_in6 { | |
| unsafe { *(self.inner.as_ptr() as *const sockaddr_in6) } |
At line 102 and 108, they both cast the type aligned to 2 bytes to the type aligned to 4 bytes. This could lead to undefined behavior in safe functions.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels