diff options
author | kcpoon <none@none> | 2007-10-10 09:37:21 -0700 |
---|---|---|
committer | kcpoon <none@none> | 2007-10-10 09:37:21 -0700 |
commit | c4f4b3c8232326fe57ccd8f2cf3077d3d309163e (patch) | |
tree | a37d186caba51f3241a2135558d201b3dd8a4f7c /usr/src | |
parent | 2e8bde70d0141390208fe321bf3a9e4f043b5587 (diff) | |
download | illumos-joyent-c4f4b3c8232326fe57ccd8f2cf3077d3d309163e.tar.gz |
6610789 SCTP has erroneous check for multicast address
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/inet/sctp/sctp_addr.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/inet/sctp/sctp_asconf.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/inet/sctp/sctp_common.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/inet/sctp/sctp_conn.c | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/usr/src/uts/common/inet/sctp/sctp_addr.c b/usr/src/uts/common/inet/sctp/sctp_addr.c index cdef1bc636..1761396031 100644 --- a/usr/src/uts/common/inet/sctp/sctp_addr.c +++ b/usr/src/uts/common/inet/sctp/sctp_addr.c @@ -337,7 +337,7 @@ sctp_valid_addr_list(sctp_t *sctp, const void *addrs, uint32_t addrcnt, if (check_addrs && (addr4->s_addr == INADDR_ANY || addr4->s_addr == INADDR_BROADCAST || - IN_MULTICAST(addr4->s_addr))) { + CLASSD(addr4->s_addr))) { err = EINVAL; goto free_ret; } diff --git a/usr/src/uts/common/inet/sctp/sctp_asconf.c b/usr/src/uts/common/inet/sctp/sctp_asconf.c index 557b6cf029..fd9dd63b44 100644 --- a/usr/src/uts/common/inet/sctp/sctp_asconf.c +++ b/usr/src/uts/common/inet/sctp/sctp_asconf.c @@ -1095,7 +1095,7 @@ sctp_check_addip_addr(sctp_parm_hdr_t *ph, sctp_parm_hdr_t *oph, int *cont, /* screen XXX loopback to scoping */ if (*addr4 == 0 || *addr4 == INADDR_BROADCAST || - *addr4 == htonl(INADDR_LOOPBACK) || IN_MULTICAST(*addr4)) { + *addr4 == htonl(INADDR_LOOPBACK) || CLASSD(*addr4)) { dprint(1, ("addip: addr not unicast: %x:%x:%x:%x\n", SCTP_PRINTADDR(addr))); mp = sctp_asconf_adderr(SCTP_ERR_BAD_MANDPARM, oph, diff --git a/usr/src/uts/common/inet/sctp/sctp_common.c b/usr/src/uts/common/inet/sctp/sctp_common.c index 8d597215b5..0a3f66085d 100644 --- a/usr/src/uts/common/inet/sctp/sctp_common.c +++ b/usr/src/uts/common/inet/sctp/sctp_common.c @@ -1444,7 +1444,7 @@ sctp_get_addrparams(sctp_t *sctp, sctp_t *psctp, mblk_t *pkt, if (ta == 0 || ta == INADDR_BROADCAST || ta == htonl(INADDR_LOOPBACK) || - IN_MULTICAST(ta) || + CLASSD(ta) || sctp->sctp_connp->conn_ipv6_v6only) { goto next; } diff --git a/usr/src/uts/common/inet/sctp/sctp_conn.c b/usr/src/uts/common/inet/sctp/sctp_conn.c index 9c04649f5b..716abc13bc 100644 --- a/usr/src/uts/common/inet/sctp/sctp_conn.c +++ b/usr/src/uts/common/inet/sctp/sctp_conn.c @@ -348,7 +348,7 @@ sctp_connect(sctp_t *sctp, const struct sockaddr *dst, uint32_t addrlen) sin = (sin_t *)dst; /* Check for attempt to connect to non-unicast */ - if (IN_MULTICAST(sin->sin_addr.s_addr) || + if (CLASSD(sin->sin_addr.s_addr) || (sin->sin_addr.s_addr == INADDR_BROADCAST)) { ip0dbg(("sctp_connect: non-unicast\n")); return (EINVAL); |