• Chris Wright's avatar
    [IPV4/IPV6]: IGMP source filter fixes · c1e98f7d
    Chris Wright authored
    When adding or deleting from the source list make sure to find matches
    by comparing against the new source address, not the group address.
    Also, check each addr in the list rather than just the first one.
    And, finally, only delete from list when there's a match rather than
    vice-versa.  Drop the effort to keep list sorted, since it's not done
    on full-state api and can create an sl_addr entry that the delta api
    won't be able to delete. Without these fixes sl_count can be corrupted
    which can allow for kernel memory corruption.
    Signed-off-by: default avatarChris Wright <chrisw@osdl.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c1e98f7d
mcast.c 58 KB