forked from maidsafe-archive/get_if_addrs
-
Notifications
You must be signed in to change notification settings - Fork 19
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.
Metadata
Metadata
Assignees
Labels
No labels