[lkml]   [2011]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 1/1] igmp: fix ip_mc_clear_src to not reset ip_mc_list->sf{mode,count}
    ip_mc_clear_src resets the imc->sfcount and imc->sfmode, without taking into
    account the current number of sockets listening on that multicast struct, which
    can lead to bogus routes for local listeners.

    On NETDEV_DOWN/UP event, if there were 3 multicast listeners for that interface's
    address, the imc->sfcount[MCAST_EXCLUDE] will be reset to 1. And after that a
    listener socket destroys, multicast traffic will not be delivered to local
    listeners because __mkroute_output drops the local flag for the route (by
    checking ip_check_mc).

    Signed-off-by: Veaceslav Falico <>

    diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
    index 1fd3d9c..b14f371 100644
    --- a/net/ipv4/igmp.c
    +++ b/net/ipv4/igmp.c
    @@ -1775,9 +1775,6 @@ static void ip_mc_clear_src(struct ip_mc_list *pmc)
    pmc->sources = NULL;
    - pmc->sfmode = MCAST_EXCLUDE;
    - pmc->sfcount[MCAST_INCLUDE] = 0;
    - pmc->sfcount[MCAST_EXCLUDE] = 1;

     \ /
      Last update: 2011-05-15 19:03    [W:0.044 / U:4.724 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site