Skip to content

Commit 4a3180a

Browse files
committed
Auto merge of #3183 - ChrisDenton:align-stack-buffer, r=<try>
Use aligned `cmsghdr` structs `test_cmsg_nxthdr` Fixes #3181. I could find no reason for using unaligned structs in this test.
2 parents 7adf246 + 2f15111 commit 4a3180a

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

libc-test/test/cmsg.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,16 @@ mod t {
5151
}
5252
}
5353

54-
// Skip on sparc64
55-
// https://github.com/rust-lang/libc/issues/1239
56-
#[cfg(not(target_arch = "sparc64"))]
5754
#[test]
58-
// FIXME: This triggers alignment checks for pointer dereferences:
59-
// https://github.com/rust-lang/libc/issues/3181
60-
#[ignore]
6155
fn test_cmsg_nxthdr() {
6256
use std::ptr;
6357

64-
let mut buffer = [0u8; 256];
58+
const CAPACITY: usize = 64 + 196 / mem::size_of::<usize>();
59+
let mut buffer = [0_usize; CAPACITY];
6560
let mut mhdr: msghdr = unsafe { mem::zeroed() };
6661
let pmhdr = &mhdr as *const msghdr;
6762
for start_ofs in 0..64 {
68-
let pcmsghdr = &mut buffer[start_ofs] as *mut u8 as *mut cmsghdr;
63+
let pcmsghdr = &mut buffer[start_ofs] as *mut usize as *mut cmsghdr;
6964
mhdr.msg_control = pcmsghdr as *mut c_void;
7065
mhdr.msg_controllen = (160 - start_ofs) as _;
7166
for cmsg_len in 0..64 {

0 commit comments

Comments
 (0)