GitHub Advisoryadvisory · crates.io

GHSA-c439-chv8-8g2j `os_socketaddr` invalidly assumes the memory layout of std::net::SocketAddr

HIGH Published 2022-09-02 Modified 2022-09-02 Official page ↗
Ecosystem
crates.io
Packages
os_socketaddr
Severity
High
Reviewed
2022-09-02

Affected packages

• crates.io os_socketaddr: < 0.2.2 → fixed in 0.2.2

Description

The `os_socketaddr` crate has assumed `std::net::SocketAddrV4` and `std::net::SocketAddrV6` have the same memory layout as the system C representation `sockaddr`. It has simply casted the pointers to convert the socket addresses to the system representation. These layout were changed into idiomatic rust types in nightly `std`. Starting from rustc 1.64 the affected versions of this crate will have undefined behaviour.

References