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: 729cd6436f ("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
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
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
2020-05-28 11:11:46 -07:00
2020-02-28 12:12:53 -08:00
2020-05-22 16:46:16 -07:00
2020-05-01 12:15:37 -07:00
2020-05-09 01:05:30 -07:00
2020-02-27 18:50:19 -08: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
2020-03-27 19:40:38 -07:00
2020-05-20 20:31:32 -04:00
2020-06-01 11:49:23 -07:00
2020-02-29 21:52:20 -08:00
2020-03-31 17:29:33 -07:00
2020-05-12 13:08:07 -07: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
2020-03-03 13:28:48 -08:00
2020-06-01 15:21:02 -07:00
2020-06-01 11:41:50 -07:00
2020-02-13 14:19:00 -08:00
2020-05-11 13:18:54 -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
2020-03-30 13:45:04 -07:00
2020-03-02 11:16:28 -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
2020-05-26 16:06:07 -07:00
2020-05-19 15:45:11 -07:00
2020-05-28 11:11:45 -07:00
2020-05-29 13:02:33 -07:00
2020-05-28 11:11:46 -07:00
2020-03-29 22:30:57 -07:00
2020-05-31 11:27:03 +02: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
2020-04-22 12:15:07 -07:00
2020-02-29 21:52:20 -08:00
2020-06-01 15:21:02 -07:00
2020-04-30 17:51:42 -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
2020-05-15 10:23:11 -07:00
2020-03-17 21:16:34 -07:00
2020-03-14 21:03:46 -07:00
2020-04-24 12:33:43 +02:00
2020-03-23 21:57:44 -07:00
2020-03-29 22:30:57 -07:00
2020-05-15 10:23:11 -07:00
2020-06-04 15:39:32 -07:00
2020-02-29 21:52:19 -08:00
2020-06-01 14:57:14 -07:00
2020-06-01 11:56:11 -07:00
2020-06-03 16:27:18 -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
2020-05-22 14:00:38 -07: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