2018-02-02 1:57 GMT+02:00 Alexey Kodanev <[email protected]>:
> For ipv6 part, shouldn't we release 'bdst' there if the previous address
> match is better and we continue to the next iteration?
Good catch!
Didn't see that one.
Tommi
> diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
> index 5d4c15b..a044096 100644
> --- a/net/sctp/ipv6.c
> +++ b/net/sctp/ipv6.c
> @@ -336,8 +336,11 @@ static void sctp_v6_get_dst(struct sctp_transport *t,
> union sctp_addr *saddr,
> }
>
> bmatchlen = sctp_v6_addr_match_len(daddr, &laddr->a);
> - if (matchlen > bmatchlen)
> + if (matchlen > bmatchlen) {
> + if (!IS_ERR(bdst))
> + dst_release(bdst);
> continue;
> + }
>
> if (!IS_ERR_OR_NULL(dst))
> dst_release(dst);
>
> Thanks,
> Alexey