• Jon Maloy's avatar
    tipc: fix list sorting bug in function tipc_group_update_member() · 3db09601
    Jon Maloy authored
    When, during a join operation, or during message transmission, a group
    member needs to be added to the group's 'congested' list, we sort it
    into the list in ascending order, according to its current advertised
    window size. However, we miss the case when the member is already on
    that list. This will have the result that the member, after the window
    size has been decremented, might be at the wrong position in that list.
    This again may have the effect that we during broadcast and multicast
    transmissions miss the fact that a destination is not yet ready for
    reception, and we end up sending anyway. From this point on, the
    behavior during the remaining session is unpredictable, e.g., with
    underflowing window sizes.
    
    We now correct this bug by unconditionally removing the member from
    the list before (re-)sorting it in.
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3db09601
group.c 21.6 KB