bridge: check return value of ipv6_dev_get_saddr()
Subsystems (3)
PATCH 1/1 bridge: check return value of ipv6_dev_get_saddr()
otherwise source IPv6 address of ICMPV6_MGM_QUERY packet might be random junk if IPv6 is disabled on interface or link-local address is not yet ready (DAD).
Signed-off-by Ulrich Weber <[email protected]>
--- net/bridge/br_multicast.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
net/bridge/br_multicast.c +5 -2
@@ -446,8 +446,11 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, ip6h->nexthdr =IPPROTO_HOPOPTS ; ip6h->hop_limit =1 ;ipv6_addr_set (&ip6h->daddr,htonl (0xff020000 ),0 ,0 ,htonl (1 )); -ipv6_dev_get_saddr (dev_net (br->dev), br->dev, &ip6h->daddr,0 , - &ip6h->saddr); +if (ipv6_dev_get_saddr (dev_net (br->dev), br->dev, &ip6h->daddr,0 , + &ip6h->saddr)) { +kfree_skb (skb); +return NULL ; + }ipv6_eth_mc_map (&ip6h->daddr, eth->h_dest); hopopt = (u8 *)(ip6h +1 );
Signature · 1 line
1.7.4.1
David Miller
maintainerFrom: Ulrich Weber <[email protected]>
Date: Mon, 5 Mar 2012 15:52:44 +0100
Quoted 5 lines
otherwise source IPv6 address of
ICMPV6_MGM_QUERYpacket might be random junk if IPv6 is disabled on interface or link-local address is not yet ready (DAD).Signed-off-by Ulrich Weber <[email protected]>
Applied and queued up for -stable, thanks.