summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorkcpoon <none@none>2007-10-10 09:37:21 -0700
committerkcpoon <none@none>2007-10-10 09:37:21 -0700
commitc4f4b3c8232326fe57ccd8f2cf3077d3d309163e (patch)
treea37d186caba51f3241a2135558d201b3dd8a4f7c /usr/src
parent2e8bde70d0141390208fe321bf3a9e4f043b5587 (diff)
downloadillumos-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.c2
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_asconf.c2
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_common.c2
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_conn.c2
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);