On Tue, Jul 21, 2020 at 2:16 AM Kuniyuki Iwashima <kun...@amazon.co.jp> wrote:
>
> If an unconnected socket in a UDP reuseport group connect()s, has_conns is
> set to 1. Then, when a packet is received, udp[46]_lib_lookup2() scans all
> sockets in udp_hslot looking for the connected socket with the highest
> score.
>
> However, when the number of sockets bound to the port exceeds max_socks,
> reuseport_grow() resets has_conns to 0. It can cause udp[46]_lib_lookup2()
> to return without scanning all sockets, resulting in that packets sent to
> connected sockets may be distributed to unconnected sockets.
>
> Therefore, reuseport_grow() should copy has_conns.
>
> Fixes: acdcecc61285 ("udp: correct reuseport selection with connected 
> sockets")
> CC: Willem de Bruijn <will...@google.com>
> Reviewed-by: Benjamin Herrenschmidt <b...@amazon.com>
> Signed-off-by: Kuniyuki Iwashima <kun...@amazon.co.jp>

Acked-by: Willem de Bruijn <will...@google.com>

Thanks. Yes, I missed this resize operation when adding the field.

Reply via email to