aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/protocol.c')
-rw-r--r--net/sctp/protocol.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 363274045032..2db140e901d0 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -478,12 +478,14 @@ static struct dst_entry *sctp_v4_get_dst(struct sctp_association *asoc,
478 */ 478 */
479 sctp_read_lock(addr_lock); 479 sctp_read_lock(addr_lock);
480 list_for_each(pos, &bp->address_list) { 480 list_for_each(pos, &bp->address_list) {
481 union sctp_addr tmp;
481 laddr = list_entry(pos, struct sctp_sockaddr_entry, 482 laddr = list_entry(pos, struct sctp_sockaddr_entry,
482 list); 483 list);
483 if (!laddr->use_as_src) 484 if (!laddr->use_as_src)
484 continue; 485 continue;
485 sctp_v4_dst_saddr(&dst_saddr, dst, bp->port); 486 sctp_v4_dst_saddr(&dst_saddr, dst, bp->port);
486 if (sctp_v4_cmp_addr(&dst_saddr, &laddr->a_h)) 487 flip_to_n(&tmp, &dst_saddr);
488 if (sctp_v4_cmp_addr(&tmp, &laddr->a))
487 goto out_unlock; 489 goto out_unlock;
488 } 490 }
489 sctp_read_unlock(addr_lock); 491 sctp_read_unlock(addr_lock);