mirror of git://sourceware.org/git/glibc.git
The inline and library functions that the CMSG_NXTHDR macro may expand to increment the pointer to the header before checking the stride of the increment against available space. Since C only allows incrementing pointers to one past the end of an array, the increment must be done after a length check. This commit fixes that and includes a regression test for CMSG_FIRSTHDR and CMSG_NXTHDR. The Linux, Hurd, and generic headers are all changed. Tested on Linux on armv7hl, i686, x86_64, aarch64, ppc64le, and s390x. [BZ #28846] Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> |
||
|---|---|---|
| .. | ||
| bits | ||
| sys | ||
| Makefile | ||
| Versions | ||
| accept.c | ||
| accept4.c | ||
| bind.c | ||
| connect.c | ||
| getpeername.c | ||
| getsockname.c | ||
| getsockopt.c | ||
| isfdtype.c | ||
| listen.c | ||
| opensock.c | ||
| recv.c | ||
| recvfrom.c | ||
| recvmmsg.c | ||
| recvmsg.c | ||
| sa_len.c | ||
| send.c | ||
| sendmmsg.c | ||
| sendmsg.c | ||
| sendto.c | ||
| setsockopt.c | ||
| shutdown.c | ||
| sockaddr_un_set.c | ||
| sockatmark.c | ||
| socket.c | ||
| socketpair.c | ||
| tst-accept4.c | ||
| tst-cmsghdr-skeleton.c | ||
| tst-cmsghdr.c | ||
| tst-sockaddr_un_set.c | ||
| tst-sockopt-time64.c | ||
| tst-sockopt.c | ||