mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
inet: fix improper empty comparison
When doing my reuseport rework I screwed up and changed a
if (hlist_empty(&tb->owners))
to
if (!hlist_empty(&tb->owners))
This is obviously bad as all of the reuseport/reuse logic was reversed,
which caused weird problems like allowing an ipv4 bind conflict if we
opened an ipv4 only socket on a port followed by an ipv6 only socket on
the same port.
Fixes: b9470c2760
("inet: kill smallest_size and smallest_port")
Reported-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7a56673b58
commit
fbed24bcc6
@ -321,7 +321,7 @@ tb_found:
|
|||||||
goto fail_unlock;
|
goto fail_unlock;
|
||||||
}
|
}
|
||||||
success:
|
success:
|
||||||
if (!hlist_empty(&tb->owners)) {
|
if (hlist_empty(&tb->owners)) {
|
||||||
tb->fastreuse = reuse;
|
tb->fastreuse = reuse;
|
||||||
if (sk->sk_reuseport) {
|
if (sk->sk_reuseport) {
|
||||||
tb->fastreuseport = FASTREUSEPORT_ANY;
|
tb->fastreuseport = FASTREUSEPORT_ANY;
|
||||||
|
Loading…
Reference in New Issue
Block a user