alistair23-linux/net/tipc
Jon Maloy 3db0960117 tipc: fix list sorting bug in function tipc_group_update_member()
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: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-12-19 14:10:03 -05:00
..
addr.c
addr.h
bcast.c tipc: improve destination linked list 2017-10-13 08:46:00 -07:00
bcast.h
bearer.c tipc: remove unnecessary call to dev_net() 2017-09-06 21:25:52 -07:00
bearer.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
core.c
core.h tipc: add ability to order and receive topology events in driver 2017-10-13 08:46:00 -07:00
discover.c net: tipc: Convert timers to use timer_setup() 2017-11-01 12:38:45 +09:00
discover.h
eth_media.c
group.c tipc: fix list sorting bug in function tipc_group_update_member() 2017-12-19 14:10:03 -05:00
group.h tipc: guarantee that group broadcast doesn't bypass group unicast 2017-10-13 08:46:01 -07:00
ib_media.c
Kconfig
link.c tipc: improve link resiliency when rps is activated 2017-11-11 15:36:05 +09:00
link.h
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
monitor.c tipc: eliminate unnecessary probing 2017-11-03 15:48:46 +09:00
monitor.h
msg.c tipc: enforce valid ratio between skb truesize and contents 2017-11-16 10:49:00 +09:00
msg.h tipc: enforce valid ratio between skb truesize and contents 2017-11-16 10:49:00 +09:00
name_distr.c
name_distr.h
name_table.c tipc: eliminate KASAN warning 2017-10-26 09:38:34 +09:00
name_table.h tipc: introduce group anycast messaging 2017-10-13 08:46:00 -07:00
net.c netlink: pass extended ACK struct where available 2017-04-13 13:58:22 -04:00
net.h
netlink.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
netlink.h
netlink_compat.c net: tipc: constify genl_ops 2017-08-23 22:31:38 -07:00
node.c tipc: enforce valid ratio between skb truesize and contents 2017-11-16 10:49:00 +09:00
node.h tipc: introduce communication groups 2017-10-13 08:46:00 -07:00
server.c tipc: fix memory leak in tipc_accept_from_sock() 2017-12-05 14:52:41 -05:00
server.h tipc: add ability to order and receive topology events in driver 2017-10-13 08:46:00 -07:00
socket.c tipc: eliminate potential memory leak 2017-12-13 13:44:36 -05:00
socket.h
subscr.c net: tipc: Convert timers to use timer_setup() 2017-11-01 12:38:45 +09:00
subscr.h tipc: adjust the policy of holding subscription kref 2017-03-28 18:03:33 -07:00
sysctl.c
udp_media.c tipc: call tipc_rcv() only if bearer is up in tipc_udp_recv() 2017-12-01 15:14:22 -05:00
udp_media.h