Skip to content

Commit ddd3ee7

Browse files
authored
init msghdr with zeros via MaybeUninit::zeroed to cover private padding for musl (#33)
1 parent 31e4f2f commit ddd3ee7

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

src/io_uring/in_flight.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,11 @@ impl InFlight {
2727
size
2828
]);
2929
let msghdrs = UnsafeCell::new(vec![
30-
libc::msghdr {
31-
msg_name: null_mut(),
32-
msg_namelen: std::mem::size_of::<
33-
libc::sockaddr_in,
34-
>() as u32,
35-
msg_iov: null_mut(),
36-
msg_iovlen: 1,
37-
msg_control: null_mut(),
38-
msg_controllen: 0,
39-
msg_flags: 0,
40-
};
30+
#[allow(unsafe_code)]
31+
unsafe { MaybeUninit::<libc::msghdr>::zeroed().assume_init() };
4132
size
4233
]);
34+
4335
let mut filler_vec = Vec::with_capacity(size);
4436
for _ in 0..size {
4537
filler_vec.push(None);
@@ -71,6 +63,7 @@ impl InFlight {
7163
(*iovec_ptr)
7264
.as_mut_ptr()
7365
.add(ticket);
66+
(*msghdr_ptr)[ticket].msg_iovlen = 1;
7467
}
7568
}
7669
(*self.fillers.get())[ticket] = Some(filler);

src/io_uring/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use std::{
1313
},
1414
Arc, Condvar, Mutex,
1515
},
16+
mem::MaybeUninit
1617
};
1718

1819
use super::{

0 commit comments

Comments
 (0)