aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/associola.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r--net/sctp/associola.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 3be8b6081a15..4bd916c808c1 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -927,19 +927,16 @@ struct sctp_transport *sctp_assoc_is_match(struct sctp_association *asoc,
927 const union sctp_addr *paddr) 927 const union sctp_addr *paddr)
928{ 928{
929 struct sctp_transport *transport; 929 struct sctp_transport *transport;
930 union sctp_addr tmp, tmp2;
931 flip_to_n(&tmp, laddr);
932 flip_to_n(&tmp2, paddr);
933 930
934 sctp_read_lock(&asoc->base.addr_lock); 931 sctp_read_lock(&asoc->base.addr_lock);
935 932
936 if ((asoc->base.bind_addr.port == laddr->v4.sin_port) && 933 if ((htons(asoc->base.bind_addr.port) == laddr->v4.sin_port) &&
937 (asoc->peer.port == paddr->v4.sin_port)) { 934 (htons(asoc->peer.port) == paddr->v4.sin_port)) {
938 transport = sctp_assoc_lookup_paddr(asoc, &tmp2); 935 transport = sctp_assoc_lookup_paddr(asoc, paddr);
939 if (!transport) 936 if (!transport)
940 goto out; 937 goto out;
941 938
942 if (sctp_bind_addr_match(&asoc->base.bind_addr, &tmp, 939 if (sctp_bind_addr_match(&asoc->base.bind_addr, laddr,
943 sctp_sk(asoc->base.sk))) 940 sctp_sk(asoc->base.sk)))
944 goto out; 941 goto out;
945 } 942 }