@@ -1619,18 +1619,18 @@ impl<S> MultiHeaders<S> {
16191619
16201620 // we'll need a cmsg_buffer for each slice, we preallocate a vector and split
16211621 // it into "slices" parts
1622- let cmsg_buffers =
1622+ let mut cmsg_buffers =
16231623 cmsg_buffer. map( |v| vec![ 0u8 ; v. capacity( ) * num_slices] . into_boxed_slice( ) ) ;
16241624
16251625 let items = addresses
16261626 . iter_mut( )
16271627 . enumerate( )
16281628 . map( |( ix, address) | {
1629- let ( ptr, cap) = match & cmsg_buffers {
1630- Some ( v) => ( ( & v[ ix * msg_controllen] as * const u8 ) , msg_controllen) ,
1631- None => ( std:: ptr:: null ( ) , 0 ) ,
1629+ let ( ptr, cap) = match & mut cmsg_buffers {
1630+ Some ( v) => ( ( & mut v[ ix * msg_controllen] as * mut u8 ) , msg_controllen) ,
1631+ None => ( std:: ptr:: null_mut ( ) , 0 ) ,
16321632 } ;
1633- let msg_hdr = unsafe { pack_mhdr_to_receive( std:: ptr:: null ( ) , 0 , ptr, cap, address. as_mut_ptr( ) ) } ;
1633+ let msg_hdr = unsafe { pack_mhdr_to_receive( std:: ptr:: null_mut ( ) , 0 , ptr, cap, address. as_mut_ptr( ) ) } ;
16341634 libc:: mmsghdr {
16351635 msg_hdr,
16361636 msg_len: 0 ,
@@ -1961,9 +1961,9 @@ unsafe fn read_mhdr<'a, 'i, S>(
19611961///
19621962/// Buffers must remain valid for the whole lifetime of msghdr
19631963unsafe fn pack_mhdr_to_receive<S >(
1964- iov_buffer: * const IoSliceMut ,
1964+ iov_buffer: * mut IoSliceMut ,
19651965 iov_buffer_len: usize ,
1966- cmsg_buffer: * const u8 ,
1966+ cmsg_buffer: * mut u8 ,
19671967 cmsg_capacity: usize ,
19681968 address: * mut S ,
19691969) -> msghdr
@@ -1999,7 +1999,7 @@ fn pack_mhdr_to_send<'a, I, C, S>(
19991999
20002000 // The message header must be initialized before the individual cmsgs.
20012001 let cmsg_ptr = if capacity > 0 {
2002- cmsg_buffer. as_ptr ( ) as * mut c_void
2002+ cmsg_buffer. as_mut_ptr ( ) as * mut c_void
20032003 } else {
20042004 ptr:: null_mut( )
20052005 } ;
@@ -2063,7 +2063,7 @@ pub fn recvmsg<'a, 'outer, 'inner, S>(fd: RawFd, iov: &'outer mut [IoSliceMut<'i
20632063 . map( |v| ( v. as_mut_ptr( ) , v. capacity( ) ) )
20642064 . unwrap_or( ( ptr:: null_mut( ) , 0 ) ) ;
20652065 let mut mhdr = unsafe {
2066- pack_mhdr_to_receive( iov. as_ref ( ) . as_ptr ( ) , iov. len( ) , msg_control, msg_controllen, address. as_mut_ptr( ) )
2066+ pack_mhdr_to_receive( iov. as_mut ( ) . as_mut_ptr ( ) , iov. len( ) , msg_control, msg_controllen, address. as_mut_ptr( ) )
20672067 } ;
20682068
20692069 let ret = unsafe { libc:: recvmsg( fd, & mut mhdr, flags. bits( ) ) } ;
@@ -2209,7 +2209,7 @@ pub fn recv(sockfd: RawFd, buf: &mut [u8], flags: MsgFlags) -> Result<usize> {
22092209 unsafe {
22102210 let ret = libc:: recv (
22112211 sockfd,
2212- buf. as_ptr ( ) as * mut c_void ,
2212+ buf. as_mut_ptr ( ) as * mut c_void ,
22132213 buf. len ( ) as size_t ,
22142214 flags. bits ( ) ,
22152215 ) ;
@@ -2233,7 +2233,7 @@ pub fn recvfrom<T: SockaddrLike>(
22332233
22342234 let ret = Errno :: result ( libc:: recvfrom (
22352235 sockfd,
2236- buf. as_ptr ( ) as * mut c_void ,
2236+ buf. as_mut_ptr ( ) as * mut c_void ,
22372237 buf. len ( ) as size_t ,
22382238 0 ,
22392239 addr. as_mut_ptr ( ) as * mut sockaddr ,
0 commit comments