diff options
author | Michael Tuexen <tuexen@FreeBSD.org> | 2021-08-07 13:12:09 +0000 |
---|---|---|
committer | Michael Tuexen <tuexen@FreeBSD.org> | 2022-02-22 22:30:20 +0000 |
commit | 4b3cfa86d05f6a17fb19f91ebd40e4682d919850 (patch) | |
tree | 05e16972cf28219b398cf8446600f94bc534ccd5 | |
parent | 946fc2cb73209033ca823cba8fda0b6177815ebe (diff) | |
download | src-4b3cfa86d05f6a17fb19f91ebd40e4682d919850.tar.gz src-4b3cfa86d05f6a17fb19f91ebd40e4682d919850.zip |
sctp: improve input validation of mapped addresses in sctp_connectx()
(cherry picked from commit 112899c6afc5d174445b6ab4738b8eb4de19d835)
-rw-r--r-- | sys/netinet/sctputil.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c index 42e91e10a0d9..7d6b932b4dc1 100644 --- a/sys/netinet/sctputil.c +++ b/sys/netinet/sctputil.c @@ -6715,15 +6715,15 @@ sctp_connectx_helper_find(struct sctp_inpcb *inp, struct sockaddr *addr, { struct sockaddr_in6 *sin6; + incr = (unsigned int)sizeof(struct sockaddr_in6); + if (sa->sa_len != incr) { + return (EINVAL); + } sin6 = (struct sockaddr_in6 *)sa; if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { /* Must be non-mapped for connectx */ return (EINVAL); } - incr = (unsigned int)sizeof(struct sockaddr_in6); - if (sa->sa_len != incr) { - return (EINVAL); - } (*num_v6) += 1; break; } |