提交 6c7be55c 编写于 作者: A Al Viro 提交者: David S. Miller

[SCTP]: sctp_has_association() switched to net-endian.

Ditto for its only caller (sctp_endpoint_is_peeled_off)
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 cd4ff034
...@@ -305,7 +305,7 @@ int sctp_endpoint_is_peeled_off(struct sctp_endpoint *ep, ...@@ -305,7 +305,7 @@ int sctp_endpoint_is_peeled_off(struct sctp_endpoint *ep,
bp = &ep->base.bind_addr; bp = &ep->base.bind_addr;
list_for_each(pos, &bp->address_list) { list_for_each(pos, &bp->address_list) {
addr = list_entry(pos, struct sctp_sockaddr_entry, 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); sctp_read_unlock(&ep->base.addr_lock);
return 1; return 1;
} }
......
...@@ -872,11 +872,8 @@ int sctp_has_association(const union sctp_addr *laddr, ...@@ -872,11 +872,8 @@ int sctp_has_association(const union sctp_addr *laddr,
{ {
struct sctp_association *asoc; struct sctp_association *asoc;
struct sctp_transport *transport; 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); sctp_association_put(asoc);
return 1; return 1;
} }
......
...@@ -1018,7 +1018,7 @@ static int __sctp_connect(struct sock* sk, ...@@ -1018,7 +1018,7 @@ static int __sctp_connect(struct sock* sk,
* make sure that there is no peeled-off association matching * make sure that there is no peeled-off association matching
* the peer address even on another socket. * 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; err = -EADDRNOTAVAIL;
goto out_free; goto out_free;
} }
...@@ -1475,7 +1475,7 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk, ...@@ -1475,7 +1475,7 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk,
*/ */
if ((sctp_style(sk, TCP) && if ((sctp_style(sk, TCP) &&
sctp_sstate(sk, ESTABLISHED)) || sctp_sstate(sk, ESTABLISHED)) ||
sctp_endpoint_is_peeled_off(ep, &to)) { sctp_endpoint_is_peeled_off(ep, &tmp)) {
err = -EADDRNOTAVAIL; err = -EADDRNOTAVAIL;
goto out_unlock; goto out_unlock;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册