[SCTP] bug: sctp_find_unmatch_addr() compares net-endian to host-endian
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
index 2b9c12a..23b5b66 100644
--- a/net/sctp/bind_addr.c
+++ b/net/sctp/bind_addr.c
@@ -332,12 +332,14 @@
addr_buf = (union sctp_addr *)addrs;
for (i = 0; i < addrcnt; i++) {
+ union sctp_addr tmp;
addr = (union sctp_addr *)addr_buf;
af = sctp_get_af_specific(addr->v4.sin_family);
if (!af)
return NULL;
+ flip_to_h(&tmp, addr);
- if (opt->pf->cmp_addr(&laddr->a, addr, opt))
+ if (opt->pf->cmp_addr(&laddr->a, &tmp, opt))
break;
addr_buf += af->sockaddr_len;