aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2006-11-20 20:02:40 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:26:26 -0500
commitd5c747f6efc03495635f129c8eb1dad0200ab183 (patch)
treeb7a9097f9f8508f76d30b4589b7a861c2b701457
parent39940a48c42441da5e7428483ac515e822d52b1d (diff)
[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>
-rw-r--r--net/sctp/bind_addr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
index 2b9c12a170e5..23b5b664a8a0 100644
--- a/net/sctp/bind_addr.c
+++ b/net/sctp/bind_addr.c
@@ -332,12 +332,14 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
332 332
333 addr_buf = (union sctp_addr *)addrs; 333 addr_buf = (union sctp_addr *)addrs;
334 for (i = 0; i < addrcnt; i++) { 334 for (i = 0; i < addrcnt; i++) {
335 union sctp_addr tmp;
335 addr = (union sctp_addr *)addr_buf; 336 addr = (union sctp_addr *)addr_buf;
336 af = sctp_get_af_specific(addr->v4.sin_family); 337 af = sctp_get_af_specific(addr->v4.sin_family);
337 if (!af) 338 if (!af)
338 return NULL; 339 return NULL;
340 flip_to_h(&tmp, addr);
339 341
340 if (opt->pf->cmp_addr(&laddr->a, addr, opt)) 342 if (opt->pf->cmp_addr(&laddr->a, &tmp, opt))
341 break; 343 break;
342 344
343 addr_buf += af->sockaddr_len; 345 addr_buf += af->sockaddr_len;