aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2016-05-04 11:32:17 +0200
committerMichael Tokarev <mjt@tls.msk.ru>2016-06-07 18:02:49 +0300
commit96165b9eb4207a34a87c46df731d3cc42c052e13 (patch)
tree99d4fc09288f7e5f968d32e338af47a2a80c4f37
parent891f8dcd251e98befee17f2d00baf8b2f54b728d (diff)
gdbstub: set listen backlog to 1
Avoid possible connection drops on Linux (when tcp_syncookies is disabled) or fallbacks to SYN cookies with the following kernel warning: TCP: request_sock_TCP: Possible SYN flooding on port 1234. Sending cookies. Check SNMP counters. Since Linux 4.4 (ef547f2ac16b "tcp: remove max_qlen_log"), a backlog of zero is really treated as the "queue length for completely established sockets waiting to be accepted" (listen(2)). This is apparently a valid interpretation of an "implementation-defined minimum value" for a backlog value of 0 (listen(3p)). Previous kernels would use 8 as minimum value, but that is no longer the case. Signed-off-by: Peter Wu <peter@lekensteyn.nl> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-rw-r--r--gdbstub.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdbstub.c b/gdbstub.c
index 8155eedf9c..9d3951336f 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -1631,7 +1631,7 @@ static int gdbserver_open(int port)
close(fd);
return -1;
}
- ret = listen(fd, 0);
+ ret = listen(fd, 1);
if (ret < 0) {
perror("listen");
close(fd);