diff options
Diffstat (limited to 'net/sctp/protocol.c')
-rw-r--r-- | net/sctp/protocol.c | 4 |
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); |