diff options
| -rw-r--r-- | talpid-windows/src/net.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/talpid-windows/src/net.rs b/talpid-windows/src/net.rs index c744114a3a..5013f21e2d 100644 --- a/talpid-windows/src/net.rs +++ b/talpid-windows/src/net.rs @@ -426,6 +426,7 @@ pub fn ipaddr_from_in6addr(addr: IN6_ADDR) -> Ipv6Addr { /// Converts a `SocketAddr` to `SOCKADDR_INET` pub fn inet_sockaddr_from_socketaddr(addr: SocketAddr) -> SOCKADDR_INET { + // SAFETY: SOCKADDR_INET is a union of C structs, these can be safely zeroed. let mut sockaddr: SOCKADDR_INET = unsafe { mem::zeroed() }; match addr { // SAFETY: `*const sockaddr` may be treated as `*const sockaddr_in` since we know it's a v4 @@ -444,6 +445,7 @@ pub fn inet_sockaddr_from_socketaddr(addr: SocketAddr) -> SOCKADDR_INET { /// Converts a `SOCKADDR_INET` to `SocketAddr`. Returns an error if the address family is invalid. pub fn try_socketaddr_from_inet_sockaddr(addr: SOCKADDR_INET) -> Result<SocketAddr> { + // SAFETY: si_family is always valid let family = unsafe { addr.si_family }; unsafe { let mut storage: sockaddr_storage = mem::zeroed(); |
