[SCTP]: Switch ->cmp_addr() and sctp_cmp_addr_exact() to net-endian.
instances of ->cmp_addr() are fine with switching both arguments
to net-endian; callers other than in sctp_cmp_addr_exact() (both
as ->cmp_addr(...) and direct calls of instances) adjusted;
sctp_cmp_addr_exact() switched to net-endian itself and adjustment
is done in its callers
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 3632740..2db140e 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -478,12 +478,14 @@
*/
sctp_read_lock(addr_lock);
list_for_each(pos, &bp->address_list) {
+ union sctp_addr tmp;
laddr = list_entry(pos, struct sctp_sockaddr_entry,
list);
if (!laddr->use_as_src)
continue;
sctp_v4_dst_saddr(&dst_saddr, dst, bp->port);
- if (sctp_v4_cmp_addr(&dst_saddr, &laddr->a_h))
+ flip_to_n(&tmp, &dst_saddr);
+ if (sctp_v4_cmp_addr(&tmp, &laddr->a))
goto out_unlock;
}
sctp_read_unlock(addr_lock);