From 5a122f83a045b915695283ccc9f1a69a8c824751 Mon Sep 17 00:00:00 2001 From: Andrew Walbran Date: Tue, 7 Jun 2022 15:52:03 +0100 Subject: [PATCH 1/3] Fix socket address family check for VsockAddr::from_raw. --- src/sys/socket/addr.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sys/socket/addr.rs b/src/sys/socket/addr.rs index 8de501a413..ad9e1bcb1b 100644 --- a/src/sys/socket/addr.rs +++ b/src/sys/socket/addr.rs @@ -2566,7 +2566,7 @@ pub mod vsock { return None; } } - if (*addr).sa_family as i32 != libc::AF_INET6 as i32 { + if (*addr).sa_family as i32 != libc::AF_VSOCK as i32 { return None; } Some(VsockAddr(*(addr as *const libc::sockaddr_vm))) From d3cc30c3daa1171d06e92ce83c24554a4f28fc46 Mon Sep 17 00:00:00 2001 From: Andrew Walbran Date: Tue, 7 Jun 2022 15:52:49 +0100 Subject: [PATCH 2/3] Fix socket address family check for SysControlAddr::from_raw. --- src/sys/socket/addr.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sys/socket/addr.rs b/src/sys/socket/addr.rs index ad9e1bcb1b..9d5c61ce32 100644 --- a/src/sys/socket/addr.rs +++ b/src/sys/socket/addr.rs @@ -2259,7 +2259,7 @@ pub mod sys_control { return None; } } - if (*addr).sa_family as i32 != libc::AF_INET6 as i32 { + if (*addr).sa_family as i32 != libc::AF_SYSTEM as i32 { return None; } Some(SysControlAddr(*(addr as *const libc::sockaddr_ctl))) From ccf1b804551c6e09ad8aac24f6e39989a618fe22 Mon Sep 17 00:00:00 2001 From: Andrew Walbran Date: Tue, 7 Jun 2022 16:22:03 +0100 Subject: [PATCH 3/3] Mention fix in changelog. --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f40e4089f..96befe3fd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,9 @@ This project adheres to [Semantic Versioning](https://semver.org/). - Enabled `SockaddrStorage::{as_link_addr, as_link_addr_mut}` for Linux-like operating systems. (#[1729](https://github.com/nix-rust/nix/pull/1729)) +- Fixed `SockaddrLike::from_raw` implementations for `VsockAddr` and + `SysControlAddr`. + (#[1736](https://github.com/nix-rust/nix/pull/1736)) ### Removed