Eric Dumazet
17c3060b17
tcp: clear saved_syn in tcp_disconnect()
In the (very unlikely) case a passive socket becomes a listener,
we do not want to duplicate its saved SYN headers.
This would lead to double frees, use after free, and please hackers and
various fuzzers
Tested:
0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0 setsockopt(3, IPPROTO_TCP, TCP_SAVE_SYN, [1], 4) = 0
+0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
+0 bind(3, ..., ...) = 0
+0 listen(3, 5) = 0
+0 < S 0:0(0) win 32972 <mss 1460,nop,wscale 7>
+0 > S. 0:0(0) ack 1 <...>
+.1 < . 1:1(0) ack 1 win 257
+0 accept(3, ..., ...) = 4
+0 connect(4, AF_UNSPEC, ...) = 0
+0 close(3) = 0
+0 bind(4, ..., ...) = 0
+0 listen(4, 5) = 0
+0 < S 0:0(0) win 32972 <mss 1460,nop,wscale 7>
+0 > S. 0:0(0) ack 1 <...>
+.1 < . 1:1(0) ack 1 win 257
Fixes: cd8ae85299 ("tcp: provide SYN headers for passive connections")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-09 18:27:28 -07:00
..
2017-01-22 16:46:13 -05:00
2017-03-03 21:44:35 -08:00
2016-12-24 11:46:01 -08:00
2017-02-06 11:25:57 -05:00
2017-02-27 18:43:47 -08:00
2017-03-09 18:23:27 -08:00
2017-03-09 18:23:27 -08:00
2017-03-16 12:05:38 -07:00
2017-03-09 18:23:27 -08:00
2017-03-16 21:29:20 -07:00
2017-03-02 08:42:29 +01:00
2017-01-30 11:05:04 +01:00
2017-03-23 12:03:36 +01:00
2017-04-06 11:57:04 -07:00
2016-12-03 23:54:25 -05:00
2017-03-13 22:00:42 -07:00
2017-03-09 18:23:27 -08:00
2017-03-03 10:16:38 -08:00
2017-02-11 02:31:11 -05:00
2017-02-16 21:25:49 -05:00
2017-02-21 13:25:22 -05:00
2017-02-27 18:43:47 -08:00
2017-02-03 15:16:45 -05:00
2017-04-09 18:27:28 -07:00
2017-03-22 12:40:22 -07:00
2016-12-25 17:21:22 +01:00
2017-03-09 18:23:27 -08:00
2017-03-09 18:23:27 -08:00
2017-03-24 13:13:53 -07:00
2016-11-18 10:59:15 -05:00
2017-04-08 08:29:04 -07:00
2016-09-10 23:12:53 -07:00
2016-12-24 11:46:01 -08:00
2017-03-09 18:23:27 -08:00
2017-03-29 14:20:40 +02:00
2017-03-02 08:42:38 +01:00
2017-03-16 20:22:18 -07:00
2016-10-20 11:23:08 -04:00
2017-03-29 12:20:50 +02:00
2017-01-06 22:20:45 -05:00
2017-03-22 15:38:43 -07:00
2017-03-09 18:23:27 -08:00
2017-03-09 18:23:27 -08:00
2017-04-01 12:16:46 -07:00
2017-03-30 11:04:00 -07:00
2017-03-09 18:23:27 -08:00
2017-01-24 13:44:28 -05:00
2017-01-10 20:45:04 -05:00
2017-03-09 18:23:27 -08:00
2017-01-24 11:07:35 +01:00
2017-03-09 18:23:27 -08:00
2017-03-16 21:27:57 -07:00
2017-04-06 12:28:39 -07:00
2017-04-06 13:55:51 -07:00
2017-03-09 18:23:27 -08:00
2017-03-03 20:43:26 -08:00
2017-04-01 10:43:37 -07:00
2016-10-30 12:42:58 -04:00
2017-03-22 11:59:16 -07:00
2017-03-21 15:25:10 -07:00
2017-03-21 14:41:47 -07:00
2016-10-27 16:16:09 -04:00
2017-03-29 09:11:29 +02:00
2017-03-09 18:23:27 -08:00
2017-03-29 13:26:22 -07:00
2017-02-22 10:15:09 -08:00
2017-02-17 13:40:05 -05:00
2017-02-03 15:16:45 -05:00
2017-03-21 18:44:17 -07:00
2016-10-06 09:52:23 -07:00