@@ -8,6 +8,7 @@ use rustix::net::{
88use serde:: Serialize ;
99use std:: collections:: VecDeque ;
1010use std:: io:: { self , IoSlice , IoSliceMut } ;
11+ use std:: mem:: MaybeUninit ;
1112use std:: num:: NonZeroUsize ;
1213use std:: os:: unix:: io:: OwnedFd ;
1314use std:: sync:: Arc ;
@@ -161,9 +162,11 @@ impl Sender {
161162 // Send with FDs using sendmsg with ancillary data
162163 let borrowed_fds: Vec < _ > = fds_batch. iter ( ) . map ( |fd| fd. as_fd ( ) ) . collect ( ) ;
163164
164- let mut buffer: Vec < u8 > =
165- vec ! [ 0u8 ; rustix:: cmsg_space!( ScmRights ( MAX_FDS_PER_RECVMSG ) ) ] ;
166- let mut control = SendAncillaryBuffer :: new ( buffer. as_mut_slice ( ) ) ;
165+ let mut buffer: [ MaybeUninit < u8 > ;
166+ rustix:: cmsg_space!( ScmRights ( MAX_FDS_PER_RECVMSG ) ) ] =
167+ [ MaybeUninit :: uninit ( ) ;
168+ rustix:: cmsg_space!( ScmRights ( MAX_FDS_PER_RECVMSG ) ) ] ;
169+ let mut control = SendAncillaryBuffer :: new ( & mut buffer) ;
167170
168171 if !control. push ( SendAncillaryMessage :: ScmRights ( & borrowed_fds) ) {
169172 return Err ( io:: Error :: other (
@@ -358,9 +361,10 @@ impl Receiver {
358361 let sockfd = self . stream . as_fd ( ) ;
359362
360363 let mut iov = [ IoSliceMut :: new ( & mut data_buffer) ] ;
361- let mut cmsg_space: Vec < u8 > =
362- vec ! [ 0u8 ; rustix:: cmsg_space!( ScmRights ( MAX_FDS_PER_RECVMSG ) ) ] ;
363- let mut cmsg_buffer = RecvAncillaryBuffer :: new ( cmsg_space. as_mut_slice ( ) ) ;
364+ let mut cmsg_space: [ MaybeUninit < u8 > ;
365+ rustix:: cmsg_space!( ScmRights ( MAX_FDS_PER_RECVMSG ) ) ] =
366+ [ MaybeUninit :: uninit ( ) ; rustix:: cmsg_space!( ScmRights ( MAX_FDS_PER_RECVMSG ) ) ] ;
367+ let mut cmsg_buffer = RecvAncillaryBuffer :: new ( & mut cmsg_space) ;
364368
365369 let result = rustix:: net:: recvmsg (
366370 sockfd,
0 commit comments