|
Lines 4098-4109
Link Here
|
| 4098 |
for (cmsg = CMSG_FIRSTHDR(msg); |
4098 |
for (cmsg = CMSG_FIRSTHDR(msg); |
| 4099 |
cmsg != NULL; |
4099 |
cmsg != NULL; |
| 4100 |
cmsg = CMSG_NXTHDR((struct msghdr*)msg, cmsg)) { |
4100 |
cmsg = CMSG_NXTHDR((struct msghdr*)msg, cmsg)) { |
| 4101 |
/* Check for minimum length. The SCM code has this check. */ |
4101 |
if (!CMSG_OK(msg, cmsg)) |
| 4102 |
if (cmsg->cmsg_len < sizeof(struct cmsghdr) || |
|
|
| 4103 |
(unsigned long)(((char*)cmsg - (char*)msg->msg_control) |
| 4104 |
+ cmsg->cmsg_len) > msg->msg_controllen) { |
| 4105 |
return -EINVAL; |
4102 |
return -EINVAL; |
| 4106 |
} |
|
|
| 4107 |
|
4103 |
|
| 4108 |
/* Should we parse this header or ignore? */ |
4104 |
/* Should we parse this header or ignore? */ |
| 4109 |
if (cmsg->cmsg_level != IPPROTO_SCTP) |
4105 |
if (cmsg->cmsg_level != IPPROTO_SCTP) |