Paolo Abeni
6761893eea
inet_connection_sock: clear inet_num out of destroy helper
...
Clearing the 'inet_num' field is necessary and safe if and
only if the socket is not bound. The MPTCP protocol calls
the destroy helper on bound sockets, as tcp_v{4,6}_syn_recv_sock
completed successfully.
Move the clearing of such field out of the common code, otherwise
the MPTCP MP_JOIN error path will find the wrong 'inet_num' value
on socket disposal, __inet_put_port() will acquire the wrong lock
and bind_node removal could race with other modifiers possibly
corrupting the bind hash table.
Reported-and-tested-by: Christoph Paasch <cpaasch@apple.com>
Fixes: 729cd6436f35 ("mptcp: cope better with MP_JOIN failure")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-06-04 15:59:56 -07:00
..
2020-03-27 09:29:57 +00:00
2020-05-20 16:30:33 +02:00
2019-05-30 11:29:22 -07:00
2020-05-19 12:50:14 -07:00
2020-06-01 11:46:30 -07:00
2020-06-01 15:21:03 -07:00
2020-02-27 12:06:20 -08:00
2019-06-05 17:37:07 +02:00
2020-05-29 13:10:39 -07:00
2020-05-01 16:08:19 -07:00
2020-02-28 14:51:30 +01:00
2020-05-24 13:47:27 -07:00
2020-04-23 12:29:21 -07:00
2019-05-30 11:26:41 -07:00
2020-05-28 11:11:46 -07:00
2020-02-28 12:12:53 -08:00
2019-12-11 15:01:23 -08:00
2019-11-06 16:14:48 -08:00
2019-06-19 17:09:55 +02:00
2020-05-22 16:46:16 -07:00
2019-05-24 17:37:53 +02:00
2020-05-01 12:15:37 -07:00
2019-07-04 12:30:48 -07:00
2020-05-09 01:05:30 -07:00
2020-02-27 18:50:19 -08:00
2019-10-30 17:34:35 -07:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2020-05-31 11:27:24 +02:00
2020-02-29 14:39:08 +01:00
2020-05-29 16:11:50 -04:00
2019-05-21 11:28:45 +02:00
2020-03-27 19:40:38 -07:00
2020-05-20 20:31:32 -04:00
2019-05-30 11:29:52 -07:00
2019-05-30 11:29:52 -07:00
2020-06-01 11:49:23 -07:00
2020-02-29 21:52:20 -08:00
2019-05-21 11:52:39 +02:00
2019-05-21 11:52:39 +02:00
2020-03-31 17:29:33 -07:00
2020-05-12 13:08:07 -07:00
2019-12-16 16:09:44 -08:00
2020-05-08 21:33:33 -07:00
2020-03-23 21:57:44 -07:00
2020-05-05 13:23:29 -07:00
2020-02-19 13:52:32 +01:00
2020-04-20 07:34:16 +02:00
2019-06-19 17:09:55 +02:00
2019-12-24 22:37:30 -08:00
2020-03-03 13:28:48 -08:00
2020-06-01 15:21:02 -07:00
2020-06-01 11:41:50 -07:00
2019-02-27 12:50:17 -08:00
2019-11-08 09:11:49 +01:00
2019-10-23 20:13:22 -07:00
2019-12-09 10:36:44 -08:00
2019-11-05 18:20:55 -08:00
2019-10-06 15:44:47 +02:00
2019-03-22 12:09:31 -07:00
2019-07-01 10:58:23 -07:00
2019-10-25 16:24:32 -07:00
2020-02-13 14:19:00 -08:00
2019-02-22 12:56:24 -08:00
2019-05-30 11:26:41 -07:00
2020-05-11 13:18:54 -07:00
2019-04-22 21:50:53 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-03-30 13:45:04 -07:00
2020-05-09 00:48:20 +02:00
2020-06-04 15:59:56 -07:00
2020-04-30 20:32:15 -07:00
2019-08-08 15:55:10 -07:00
2020-03-30 13:45:04 -07:00
2020-03-02 11:16:28 -08:00
2019-09-27 12:05:02 +02:00
2019-02-08 21:50:15 -08:00
2020-02-19 11:20:59 -08:00
2020-05-22 14:00:38 -07:00
2020-05-18 17:35:02 -07:00
2019-06-18 20:48:45 -04:00
2020-05-26 16:06:07 -07:00
2020-05-19 15:45:11 -07:00
2019-11-02 13:54:56 -07:00
2020-05-28 11:11:45 -07:00
2019-06-19 11:37:47 -04:00
2020-05-29 13:02:33 -07:00
2020-05-28 11:11:46 -07:00
2020-02-05 14:28:09 +01:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-10-08 13:23:05 -07:00
2020-03-29 22:30:57 -07:00
2020-05-31 11:27:03 +02:00
2019-05-30 11:26:41 -07:00
2020-03-26 20:17:36 -07:00
2020-03-02 11:16:27 -08:00
2020-02-29 21:52:20 -08:00
2020-02-28 12:08:37 -08:00
2020-05-29 21:20:20 -07:00
2020-05-16 13:51:10 -07:00
2019-12-09 10:36:44 -08:00
2020-04-22 12:15:07 -07:00
2020-02-29 21:52:20 -08:00
2020-06-01 15:21:02 -07:00
2019-05-21 11:28:45 +02:00
2020-04-30 17:51:42 -07:00
2019-11-12 08:18:03 -08:00
2019-04-11 13:59:49 -07:00
2020-05-31 17:48:46 -07:00
2020-02-20 10:09:25 -08:00
2020-03-04 13:25:55 -08:00
2019-05-30 11:26:32 -07:00
2020-05-15 10:23:11 -07:00
2020-03-17 21:16:34 -07:00
2019-05-30 11:26:32 -07:00
2019-09-16 09:18:03 +02:00
2019-05-30 11:26:32 -07:00
2020-03-14 21:03:46 -07:00
2020-04-24 12:33:43 +02:00
2019-10-09 21:34:31 -07:00
2020-03-23 21:57:44 -07:00
2020-03-29 22:30:57 -07:00
2019-04-22 21:47:25 -07:00
2020-05-15 10:23:11 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-06-04 15:39:32 -07:00
2019-11-15 12:28:28 -08:00
2019-10-05 16:29:00 -07:00
2020-02-29 21:52:19 -08:00
2020-06-01 14:57:14 -07:00
2019-06-19 17:09:55 +02:00
2020-06-01 11:56:11 -07:00
2019-05-30 11:26:32 -07:00
2020-06-03 16:27:18 -07:00
2019-05-30 11:26:32 -07:00
2019-10-04 14:07:07 -07:00
2020-06-01 14:48:32 -07:00
2020-05-07 17:28:18 -07:00
2020-03-09 22:34:58 +01:00
2019-11-14 18:12:17 -08:00
2020-05-22 14:00:38 -07:00
2019-06-05 17:30:29 +02:00
2019-12-09 10:28:43 -08:00
2019-11-16 12:39:10 -08:00
2020-05-21 17:31:27 -07:00
2020-05-21 17:31:27 -07:00
2020-06-01 15:02:53 -07:00
2020-05-06 09:40:08 +02:00
2020-05-21 17:31:27 -07:00