diff options
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r-- | net/sctp/associola.c | 11 |
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 | } |