From 4c8abe9cc374af8b1531b7b375f5b131ce60a7e0 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 20 Nov 2006 17:05:43 -0800 Subject: [PATCH] --- yaml --- r: 41807 b: refs/heads/master c: 7e1e4a2b9dcc63ac3328f786f9d98bde90c8fc6c h: refs/heads/master i: 41805: 686b479fda22e133f799e4ab4c143a0db1443de5 41803: 52d5eb091e1e9735aa5a6f1ac92f8e709b7f2d29 41799: 8f5d22d786f67128348e6664c426289f0b36c079 41791: 0e768bf329a013063635c696236cdcf9bf2a6a88 v: v3 --- [refs] | 2 +- trunk/net/sctp/associola.c | 8 ++++---- trunk/net/sctp/bind_addr.c | 4 +--- trunk/net/sctp/endpointola.c | 4 +++- trunk/net/sctp/socket.c | 4 +--- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index bc2293dccd49..105522fb1825 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5f242a13e8505e0f3efd3113da6e029f6e7dfa32 +refs/heads/master: 7e1e4a2b9dcc63ac3328f786f9d98bde90c8fc6c diff --git a/trunk/net/sctp/associola.c b/trunk/net/sctp/associola.c index 72199d149573..8d841f16dcbd 100644 --- a/trunk/net/sctp/associola.c +++ b/trunk/net/sctp/associola.c @@ -930,6 +930,8 @@ struct sctp_transport *sctp_assoc_is_match(struct sctp_association *asoc, const union sctp_addr *paddr) { struct sctp_transport *transport; + union sctp_addr tmp; + flip_to_n(&tmp, laddr); sctp_read_lock(&asoc->base.addr_lock); @@ -939,7 +941,7 @@ struct sctp_transport *sctp_assoc_is_match(struct sctp_association *asoc, if (!transport) goto out; - if (sctp_bind_addr_match(&asoc->base.bind_addr, laddr, + if (sctp_bind_addr_match(&asoc->base.bind_addr, &tmp, sctp_sk(asoc->base.sk))) goto out; } @@ -1342,12 +1344,10 @@ int sctp_assoc_lookup_laddr(struct sctp_association *asoc, const union sctp_addr *laddr) { int found; - union sctp_addr tmp; - flip_to_h(&tmp, laddr); sctp_read_lock(&asoc->base.addr_lock); if ((asoc->base.bind_addr.port == ntohs(laddr->v4.sin_port)) && - sctp_bind_addr_match(&asoc->base.bind_addr, &tmp, + sctp_bind_addr_match(&asoc->base.bind_addr, laddr, sctp_sk(asoc->base.sk))) { found = 1; goto out; diff --git a/trunk/net/sctp/bind_addr.c b/trunk/net/sctp/bind_addr.c index 9085e531d575..442d891f68ea 100644 --- a/trunk/net/sctp/bind_addr.c +++ b/trunk/net/sctp/bind_addr.c @@ -307,12 +307,10 @@ int sctp_bind_addr_match(struct sctp_bind_addr *bp, { struct sctp_sockaddr_entry *laddr; struct list_head *pos; - union sctp_addr tmp; - flip_to_n(&tmp, addr); list_for_each(pos, &bp->address_list) { laddr = list_entry(pos, struct sctp_sockaddr_entry, list); - if (opt->pf->cmp_addr(&laddr->a, &tmp, opt)) + if (opt->pf->cmp_addr(&laddr->a, addr, opt)) return 1; } diff --git a/trunk/net/sctp/endpointola.c b/trunk/net/sctp/endpointola.c index 75904b037ec6..d77fe9232dd1 100644 --- a/trunk/net/sctp/endpointola.c +++ b/trunk/net/sctp/endpointola.c @@ -228,10 +228,12 @@ struct sctp_endpoint *sctp_endpoint_is_match(struct sctp_endpoint *ep, const union sctp_addr *laddr) { struct sctp_endpoint *retval; + union sctp_addr tmp; + flip_to_n(&tmp, laddr); sctp_read_lock(&ep->base.addr_lock); if (ep->base.bind_addr.port == laddr->v4.sin_port) { - if (sctp_bind_addr_match(&ep->base.bind_addr, laddr, + if (sctp_bind_addr_match(&ep->base.bind_addr, &tmp, sctp_sk(ep->base.sk))) { retval = ep; goto out; diff --git a/trunk/net/sctp/socket.c b/trunk/net/sctp/socket.c index e03ba9055eb1..d42953efa355 100644 --- a/trunk/net/sctp/socket.c +++ b/trunk/net/sctp/socket.c @@ -4635,11 +4635,9 @@ static long sctp_get_port_local(struct sock *sk, union sctp_addr *addr) { struct sctp_bind_hashbucket *head; /* hash list */ struct sctp_bind_bucket *pp; /* hash list port iterator */ - union sctp_addr tmp; unsigned short snum; int ret; - flip_to_h(&tmp, addr); snum = ntohs(addr->v4.sin_port); SCTP_DEBUG_PRINTK("sctp_get_port() begins, snum=%d\n", snum); @@ -4737,7 +4735,7 @@ static long sctp_get_port_local(struct sock *sk, union sctp_addr *addr) if (reuse && sk2->sk_reuse) continue; - if (sctp_bind_addr_match(&ep2->base.bind_addr, &tmp, + if (sctp_bind_addr_match(&ep2->base.bind_addr, addr, sctp_sk(sk))) { ret = (long)sk2; goto fail_unlock;