forked from Minki/linux
[SCTP]: sctp_has_association() switched to net-endian.
Ditto for its only caller (sctp_endpoint_is_peeled_off) Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cd4ff034e3
commit
6c7be55ca0
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user