netlink: avoiding casting pointers to usize

pull/1161/merge
Tamir Duberstein 2 weeks ago
parent e17feca2d6
commit ff82c244f7

@ -707,9 +707,13 @@ impl From<NlAttrError> for io::Error {
}
unsafe fn request_attributes<T>(req: &mut T, msg_len: usize) -> &mut [u8] {
let attrs_addr = align_to(req as *mut _ as usize + msg_len, NLMSG_ALIGNTO as usize);
let attrs_end = req as *mut _ as usize + mem::size_of::<T>();
slice::from_raw_parts_mut(attrs_addr as *mut u8, attrs_end - attrs_addr)
let req: *mut _ = req;
let req: *mut u8 = req.cast();
let attrs_addr = req.add(msg_len);
let align_offset = attrs_addr.align_offset(NLMSG_ALIGNTO as usize);
let attrs_addr = attrs_addr.add(align_offset);
let len = mem::size_of::<T>() - msg_len - align_offset;
slice::from_raw_parts_mut(attrs_addr, len)
}
fn bytes_of<T>(val: &T) -> &[u8] {

Loading…
Cancel
Save