1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #define __FORCE_GLIBC
- #include <features.h>
- #include <sys/socket.h>
- struct cmsghdr *
- __cmsg_nxthdr (struct msghdr *mhdr, struct cmsghdr *cmsg)
- {
- if ((size_t) cmsg->cmsg_len < sizeof (struct cmsghdr))
-
- return NULL;
- cmsg = (struct cmsghdr *) ((unsigned char *) cmsg
- + CMSG_ALIGN (cmsg->cmsg_len));
- if ((unsigned char *) (cmsg + 1) >= ((unsigned char *) mhdr->msg_control
- + mhdr->msg_controllen)
- || ((unsigned char *) cmsg + CMSG_ALIGN (cmsg->cmsg_len)
- >= ((unsigned char *) mhdr->msg_control + mhdr->msg_controllen)))
-
- return NULL;
- return cmsg;
- }
|