]> err.no Git - linux-2.6/commitdiff
[SCTP] bug: sctp_find_unmatch_addr() compares net-endian to host-endian
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 21 Nov 2006 01:02:40 +0000 (17:02 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:26:26 +0000 (21:26 -0800)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/bind_addr.c

index 2b9c12a170e55584bef8cf5335abe2aa06309642..23b5b664a8a0adb5b32dce9fb6ec84f9396d20f4 100644 (file)
@@ -332,12 +332,14 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr     *bp,
                
                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;