diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2006-11-20 20:02:40 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:26:26 -0500 |
commit | d5c747f6efc03495635f129c8eb1dad0200ab183 (patch) | |
tree | b7a9097f9f8508f76d30b4589b7a861c2b701457 /net/sctp/bind_addr.c | |
parent | 39940a48c42441da5e7428483ac515e822d52b1d (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>
Diffstat (limited to 'net/sctp/bind_addr.c')
-rw-r--r-- | net/sctp/bind_addr.c | 4 |
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; |