net: ensure unbound stream socket to be chosen when not in a VRF
The commit a04a480d ("net: Require exact match for TCP socket lookups if dif is l3mdev") only ensures that the correct socket is selected for packets in a VRF. However, there is no guarantee that the unbound socket will be selected for packets when not in a VRF. By checking for a device match in compute_score() also for the case when there is no bound device and attaching a score to this, the unbound socket is selected. And if a failure is returned when there is no device match, this ensures that bound sockets are never selected, even if there is no unbound socket. Signed-off-by:Mike Manning <mmanning@vyatta.att-mail.com> Reviewed-by:
David Ahern <dsahern@gmail.com> Tested-by:
David Ahern <dsahern@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/net/inet_hashtables.h 11 additions, 0 deletionsinclude/net/inet_hashtables.h
- include/net/inet_sock.h 8 additions, 0 deletionsinclude/net/inet_sock.h
- net/ipv4/inet_hashtables.c 6 additions, 8 deletionsnet/ipv4/inet_hashtables.c
- net/ipv6/inet6_hashtables.c 6 additions, 8 deletionsnet/ipv6/inet6_hashtables.c
Loading
Please register or sign in to comment