From fa87632a800be06238f96431aca5a600e5935d61 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 20 Nov 2006 17:11:50 -0800 Subject: [PATCH] --- yaml --- r: 41824 b: refs/heads/master c: 6c7be55ca0c204473d07a030a03c49a7471b4508 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/sctp/endpointola.c | 2 +- trunk/net/sctp/input.c | 5 +---- trunk/net/sctp/socket.c | 4 ++-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index e28e5789fa47..c82a1b4ea3b0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cd4ff034e3572679f7ff8f126469b3addd1a4fbc +refs/heads/master: 6c7be55ca0c204473d07a030a03c49a7471b4508 diff --git a/trunk/net/sctp/endpointola.c b/trunk/net/sctp/endpointola.c index 5ffb1af336c0..4cca7792c961 100644 --- a/trunk/net/sctp/endpointola.c +++ b/trunk/net/sctp/endpointola.c @@ -305,7 +305,7 @@ int sctp_endpoint_is_peeled_off(struct sctp_endpoint *ep, bp = &ep->base.bind_addr; list_for_each(pos, &bp->address_list) { addr = list_entry(pos, struct sctp_sockaddr_entry, list); - if (sctp_has_association(&addr->a_h, paddr)) { + if (sctp_has_association(&addr->a, paddr)) { sctp_read_unlock(&ep->base.addr_lock); return 1; } diff --git a/trunk/net/sctp/input.c b/trunk/net/sctp/input.c index 2d660f8d94fd..33111873a488 100644 --- a/trunk/net/sctp/input.c +++ b/trunk/net/sctp/input.c @@ -872,11 +872,8 @@ int sctp_has_association(const union sctp_addr *laddr, { struct sctp_association *asoc; struct sctp_transport *transport; - union sctp_addr tmp, tmp2; - flip_to_n(&tmp, laddr); - flip_to_n(&tmp2, paddr); - if ((asoc = sctp_lookup_association(&tmp, &tmp2, &transport))) { + if ((asoc = sctp_lookup_association(laddr, paddr, &transport))) { sctp_association_put(asoc); return 1; } diff --git a/trunk/net/sctp/socket.c b/trunk/net/sctp/socket.c index 6beaa7821ca6..e118e3c1285e 100644 --- a/trunk/net/sctp/socket.c +++ b/trunk/net/sctp/socket.c @@ -1018,7 +1018,7 @@ static int __sctp_connect(struct sock* sk, * make sure that there is no peeled-off association matching * the peer address even on another socket. */ - if (sctp_endpoint_is_peeled_off(ep, &to)) { + if (sctp_endpoint_is_peeled_off(ep, sa_addr)) { err = -EADDRNOTAVAIL; goto out_free; } @@ -1475,7 +1475,7 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk, */ if ((sctp_style(sk, TCP) && sctp_sstate(sk, ESTABLISHED)) || - sctp_endpoint_is_peeled_off(ep, &to)) { + sctp_endpoint_is_peeled_off(ep, &tmp)) { err = -EADDRNOTAVAIL; goto out_unlock; }