-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Incorrect CMSG functions on BSD #1210
Copy link
Copy link
Closed
Labels
C-bugCategory: bugCategory: bug
Description
PR #1098 introduced Rust functions that duplicate the CMSG_FIRSTHDR, CMSG_NXTHDR, CMSG_DATA, CMSG_SPACE, and CMSG_LEN C macros. However, several of these are incorrect on BSD. It looks like the author wrote the Linux versions first, and then simply copied them into src/unix/bsd/mod.rs. For example, on both FreeBSD and OpenBSD CMSG_DATA is defined as
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut ::c_uchar {
cmsg.offset(1) as *mut ::c_uchar
}even though the actual C macro is
#define CMSG_DATA(cmsg) \
((unsigned char *)(cmsg) + _ALIGN(sizeof(struct cmsghdr)))Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
C-bugCategory: bugCategory: bug
Type
Fields
Give feedbackNo fields configured for issues without a type.