[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cb899095-c5f7-ef8a-b595-d8db54f17d7d@florian-wolters.de>
Date: Tue, 30 Jan 2018 14:22:55 +0100
From: Florian Wolters <florian@...rian-wolters.de>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org
Cc: stable@...r.kernel.org,
Sebastian Gottschall <s.gottschall@...wrt.com>,
Felix Fietkau <nbd@....name>,
"David S. Miller" <davem@...emloft.net>
Subject: Re: [PATCH 4.4 63/74] net: igmp: fix source address check for IGMPv3
reports
Tested-by: Florian Wolters <florian@...rian-wolters.de>
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@....name>
>
>
> [ 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@...omium.org>
> Fixes: a46182b00290 ("net: igmp: Use correct source address on IGMPv3 reports")
> Reported-by: Sebastian Gottschall <s.gottschall@...wrt.com>
> Signed-off-by: Felix Fietkau <nbd@....name>
> Signed-off-by: David S. Miller <davem@...emloft.net>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> ---
> 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);
>
>
Powered by blists - more mailing lists