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: cd8ae85299d5 ("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-03-27 13:49:13 +02:00
2017-03-09 18:23:27 -08:00
2017-01-16 12:57:48 +01:00
2017-02-13 22:15:03 -05:00
2017-02-04 19:44:22 -05:00
2015-07-29 22:44:04 -07:00
2017-03-02 08:42:32 +01:00
2017-02-15 11:04:11 +01:00
2017-01-17 10:23:08 +01:00
2017-03-22 14:15:49 -07:00
2015-07-24 22:46:11 -07:00
2016-09-28 04:48:00 -04:00
2017-02-08 15:25:18 -05:00
2017-02-27 18:43:47 -08:00
2016-10-30 12:42:58 -04:00
2016-06-30 05:03:36 -04:00
2016-10-20 14:32:22 -04:00
2017-01-09 15:49:12 -05:00
2017-02-09 16:43:45 -05:00
2017-03-09 18:23:27 -08:00
2017-01-13 22:37:16 -05:00
2016-06-05 22:56:42 -04:00
2017-01-18 13:04:29 -05:00
2016-12-29 11:38:31 -05:00
2015-08-28 13:32:36 -07:00
2016-11-03 16:10:26 -04:00
2017-03-22 15:40:45 -07:00
2016-12-24 11:46:01 -08:00
2016-09-16 04:24:07 -04:00
2016-12-24 11:46:01 -08:00
2017-03-09 18:28:42 -08:00
2017-02-21 12:23:53 -05:00
2017-01-30 15:14:22 -05:00
2016-11-18 10:59:15 -05:00
2016-11-18 10:59:15 -05:00
2015-04-03 12:11:15 -04:00
2017-03-27 21:06:53 -07:00
2016-12-24 11:46:01 -08:00
2017-02-27 18:43:47 -08:00
2017-02-16 21:25:49 -05:00
2017-02-15 11:04:11 +01:00
2017-02-28 12:49:36 +01:00
2017-03-24 20:50:28 -07:00
2017-02-02 23:34:19 -05:00
2014-09-19 17:15:31 -04:00
2016-11-03 15:25:26 -04:00
2017-02-07 13:07:47 -05:00
2017-04-06 12:18:56 -07:00
2017-01-09 13:58:57 -05:00
2017-01-30 15:00:58 -05:00
2016-10-29 17:12:43 -04:00
2016-05-11 14:43:19 -04:00
2017-03-02 08:42:27 +01:00
2016-11-22 13:27:16 -05:00
2016-05-11 14:43:19 -04:00
2016-12-06 11:34:24 -05:00
2016-08-23 23:11:36 -07:00
2017-01-28 10:33:06 -05:00
2016-11-21 13:20:17 -05:00
2016-05-11 14:43:19 -04:00
2016-11-21 13:20:17 -05:00
2016-11-21 13:20:17 -05:00
2017-04-07 11:44:00 -07:00
2017-03-13 21:55:47 -07:00
2016-11-21 13:20:17 -05:00
2017-02-07 13:07:46 -05:00
2017-03-22 15:39:42 -07:00
2016-06-10 23:07:49 -07:00
2016-09-19 20:59:34 -04:00
2017-04-08 08:30:09 -07:00
2017-02-21 13:26:03 -05:00
2016-09-21 00:23:00 -04:00
2017-04-05 18:41:27 -07:00
2016-11-21 13:20:17 -05:00
2017-03-07 13:58:33 -08:00
2016-11-21 13:20:17 -05:00
2016-05-11 14:43:19 -04:00
2016-11-21 13:20:17 -05:00
2016-11-21 13:20:17 -05:00
2016-11-21 13:20:17 -05:00
2017-04-09 18:27:28 -07:00
2016-07-11 13:27:06 -07:00
2016-09-08 16:13:09 -07:00
2016-11-24 15:32:14 -05:00
2016-10-20 14:32:22 -04:00
2016-06-17 20:23:32 -07:00
2017-02-07 16:29:30 -05:00
2016-11-24 15:32:14 -05:00
2017-02-15 11:04:11 +01:00
2013-12-26 13:43:21 -05:00
2017-02-15 11:04:11 +01:00
2015-03-25 14:07:04 -04:00
2015-10-24 06:54:12 -07:00
2017-02-09 10:22:19 +01:00
2017-02-09 10:22:17 +01:00
2017-01-10 10:57:12 +01:00
2013-05-31 17:19:05 -07:00