Skip to content

Commit b4836ea

Browse files
authored
Merge pull request #2095 from asomers/recvmsg-lifetime
Fix an incorrect lifetime in the return value of recvmsg
2 parents 981dc1c + c98b13e commit b4836ea

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).
6868
`SockaddrIn6::from<std::net::SockaddrV6>`, `IpMembershipRequest::new`, and
6969
`Ipv6MembershipRequest::new` with future Rust versions.
7070
([#2061](https://github.com/nix-rust/nix/pull/2061))
71+
- Fixed an incorrect lifetime returned from `recvmsg`.
72+
([#2095](https://github.com/nix-rust/nix/pull/2095))
7173

7274
### Removed
7375

src/sys/socket/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2058,7 +2058,7 @@ fn pack_mhdr_to_send<'a, I, C, S>(
20582058
/// [recvmsg(2)](https://pubs.opengroup.org/onlinepubs/9699919799/functions/recvmsg.html)
20592059
pub fn recvmsg<'a, 'outer, 'inner, S>(fd: RawFd, iov: &'outer mut [IoSliceMut<'inner>],
20602060
mut cmsg_buffer: Option<&'a mut Vec<u8>>,
2061-
flags: MsgFlags) -> Result<RecvMsg<'a, 'inner, S>>
2061+
flags: MsgFlags) -> Result<RecvMsg<'a, 'outer, S>>
20622062
where S: SockaddrLike + 'a,
20632063
'inner: 'outer
20642064
{

test/sys/test_socket.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -239,13 +239,10 @@ pub fn test_recvmsg_sockaddr_un() {
239239

240240
// Receive the message
241241
let mut recv_buffer = [0u8; 32];
242-
let received = socket::recvmsg(
243-
sock.as_raw_fd(),
244-
&mut [std::io::IoSliceMut::new(&mut recv_buffer)],
245-
None,
246-
MsgFlags::empty(),
247-
)
248-
.unwrap();
242+
let mut iov = [std::io::IoSliceMut::new(&mut recv_buffer)];
243+
let received =
244+
socket::recvmsg(sock.as_raw_fd(), &mut iov, None, MsgFlags::empty())
245+
.unwrap();
249246
// Check the address in the received message
250247
assert_eq!(sockaddr, received.address.unwrap());
251248
}

0 commit comments

Comments
 (0)