• David Ahern's avatar
    net: vrf: Reset rt6i_idev in local dst after put · 3dc857f0
    David Ahern authored
    The VRF driver takes a reference to the inet6_dev on the VRF device for
    its rt6_local dst when handling local traffic through the VRF device as
    a loopback. When the device is deleted the driver does a put on the idev
    but does not reset rt6i_idev in the rt6_info struct. When the dst is
    destroyed, dst_destroy calls ip6_dst_destroy which does a second put for
    what is essentially the same reference causing it to be prematurely freed.
    Reset rt6i_idev after the put in the vrf driver.
    
    Fixes: b4869aa2 ("net: vrf: ipv6 support for local traffic to
                           local addresses")
    Signed-off-by: default avatarDavid Ahern <dsa@cumulusnetworks.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3dc857f0
vrf.c 31.3 KB