@@ -1619,18 +1619,18 @@ impl<S> MultiHeaders<S> {
1619
1619
1620
1620
// we'll need a cmsg_buffer for each slice, we preallocate a vector and split
1621
1621
// it into "slices" parts
1622
- let cmsg_buffers =
1622
+ let mut cmsg_buffers =
1623
1623
cmsg_buffer. map( |v| vec![ 0u8 ; v. capacity( ) * num_slices] . into_boxed_slice( ) ) ;
1624
1624
1625
1625
let items = addresses
1626
1626
. iter_mut( )
1627
1627
. enumerate( )
1628
1628
. 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 ) ,
1632
1632
} ;
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( ) ) } ;
1634
1634
libc:: mmsghdr {
1635
1635
msg_hdr,
1636
1636
msg_len: 0 ,
@@ -1961,9 +1961,9 @@ unsafe fn read_mhdr<'a, 'i, S>(
1961
1961
///
1962
1962
/// Buffers must remain valid for the whole lifetime of msghdr
1963
1963
unsafe fn pack_mhdr_to_receive<S >(
1964
- iov_buffer: * const IoSliceMut ,
1964
+ iov_buffer: * mut IoSliceMut ,
1965
1965
iov_buffer_len: usize ,
1966
- cmsg_buffer: * const u8 ,
1966
+ cmsg_buffer: * mut u8 ,
1967
1967
cmsg_capacity: usize ,
1968
1968
address: * mut S ,
1969
1969
) -> msghdr
@@ -1999,7 +1999,7 @@ fn pack_mhdr_to_send<'a, I, C, S>(
1999
1999
2000
2000
// The message header must be initialized before the individual cmsgs.
2001
2001
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
2003
2003
} else {
2004
2004
ptr:: null_mut( )
2005
2005
} ;
@@ -2063,7 +2063,7 @@ pub fn recvmsg<'a, 'outer, 'inner, S>(fd: RawFd, iov: &'outer mut [IoSliceMut<'i
2063
2063
. map( |v| ( v. as_mut_ptr( ) , v. capacity( ) ) )
2064
2064
. unwrap_or( ( ptr:: null_mut( ) , 0 ) ) ;
2065
2065
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( ) )
2067
2067
} ;
2068
2068
2069
2069
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> {
2209
2209
unsafe {
2210
2210
let ret = libc:: recv (
2211
2211
sockfd,
2212
- buf. as_ptr ( ) as * mut c_void ,
2212
+ buf. as_mut_ptr ( ) as * mut c_void ,
2213
2213
buf. len ( ) as size_t ,
2214
2214
flags. bits ( ) ,
2215
2215
) ;
@@ -2233,7 +2233,7 @@ pub fn recvfrom<T: SockaddrLike>(
2233
2233
2234
2234
let ret = Errno :: result ( libc:: recvfrom (
2235
2235
sockfd,
2236
- buf. as_ptr ( ) as * mut c_void ,
2236
+ buf. as_mut_ptr ( ) as * mut c_void ,
2237
2237
buf. len ( ) as size_t ,
2238
2238
0 ,
2239
2239
addr. as_mut_ptr ( ) as * mut sockaddr ,
0 commit comments