Re: [PATCH 4.4 63/74] net: igmp: fix source address check for IGMPv3 reports

From: Florian Wolters
Date: Tue Jan 30 2018 - 08:32:38 EST


Tested-by: Florian Wolters <florian@xxxxxxxxxxxxxxxxxx>

I have tested this patch applied to 4.4.113 with positive result within
the fli4l project.



On 01/29/2018 01:57 PM, Greg Kroah-Hartman wrote:
> 4.4-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Felix Fietkau <nbd@xxxxxxxx>
>
>
> [ Upstream commit ad23b750933ea7bf962678972a286c78a8fa36aa ]
>
> Commit "net: igmp: Use correct source address on IGMPv3 reports"
> introduced a check to validate the source address of locally generated
> IGMPv3 packets.
> Instead of checking the local interface address directly, it uses
> inet_ifa_match(fl4->saddr, ifa), which checks if the address is on the
> local subnet (or equal to the point-to-point address if used).
>
> This breaks for point-to-point interfaces, so check against
> ifa->ifa_local directly.
>
> Cc: Kevin Cernekee <cernekee@xxxxxxxxxxxx>
> Fixes: a46182b00290 ("net: igmp: Use correct source address on IGMPv3 reports")
> Reported-by: Sebastian Gottschall <s.gottschall@xxxxxxxxxx>
> Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> net/ipv4/igmp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/net/ipv4/igmp.c
> +++ b/net/ipv4/igmp.c
> @@ -338,7 +338,7 @@ static __be32 igmpv3_get_srcaddr(struct
> return htonl(INADDR_ANY);
>
> for_ifa(in_dev) {
> - if (inet_ifa_match(fl4->saddr, ifa))
> + if (fl4->saddr == ifa->ifa_local)
> return fl4->saddr;
> } endfor_ifa(in_dev);
>
>