Eric Dumazet
521f1cf1db
inet_diag: fix access to tcp cc information
...
Two different problems are fixed here :
1) inet_sk_diag_fill() might be called without socket lock held.
icsk->icsk_ca_ops can change under us and module be unloaded.
-> Access to freed memory.
Fix this using rcu_read_lock() to prevent module unload.
2) Some TCP Congestion Control modules provide information
but again this is not safe against icsk->icsk_ca_ops
change and nla_put() errors were ignored. Some sockets
could not get the additional info if skb was almost full.
Fix this by returning a status from get_info() handlers and
using rcu protection as well.
Signed-off-by: Eric Dumazet <edumazet@google.com >
Acked-by: Daniel Borkmann <daniel@iogearbox.net >
Signed-off-by: David S. Miller <davem@davemloft.net >
2015-04-17 13:28:31 -04:00
..
2014-11-06 14:59:19 -05:00
2015-04-09 08:36:54 +03:00
2015-02-20 17:35:14 -05:00
2014-12-10 15:33:16 -05:00
2015-04-13 20:12:31 +02:00
2015-03-23 22:12:09 -04:00
2015-04-06 00:19:05 +02:00
2015-03-25 11:40:16 -04:00
2015-03-20 19:10:44 -04:00
2014-10-27 15:51:16 +01:00
2015-02-05 15:37:41 -08:00
2014-10-25 08:07:30 +02:00
2015-03-02 13:06:31 -05:00
2014-09-18 10:54:36 +02:00
2015-03-04 00:23:23 -05:00
2015-03-03 14:44:41 -05:00
2015-02-24 16:05:48 -05:00
2014-11-10 13:27:49 -05:00
2014-11-10 13:27:49 -05:00
2015-02-09 14:03:53 -08:00
2015-04-07 13:56:41 +02:00
2014-12-19 00:19:23 +01:00
2015-02-11 15:12:09 -08:00
2015-02-11 14:46:37 -05:00
2014-08-22 19:57:23 -07:00
2015-04-09 00:02:26 -04:00
2015-03-06 21:50:02 -05:00
2015-04-07 15:25:55 -04:00
2015-03-29 13:23:54 -07:00
2015-03-09 16:06:10 -04:00
2015-02-12 07:10:56 +01:00
2015-03-12 14:39:40 -04:00
2015-02-05 00:40:22 -08:00
2014-11-12 15:01:35 -05:00
2014-09-30 01:02:26 -04:00
2015-03-12 14:39:40 -04:00
2015-01-28 23:04:15 -08:00
2015-01-18 01:56:32 -05:00
2014-11-05 16:30:03 -05:00
2014-12-19 00:19:23 +01:00
2015-03-23 22:12:09 -04:00
2015-03-20 12:40:25 -04:00
2015-03-18 22:00:35 -04:00
2015-03-02 13:06:31 -05:00
2015-03-20 12:40:25 -04:00
2014-09-08 09:51:29 +09:00
2015-03-18 22:00:35 -04:00
2015-03-17 22:02:29 -04:00
2015-04-13 16:40:05 -04:00
2015-03-31 13:58:35 -04:00
2014-08-24 18:09:23 -07:00
2015-01-05 22:55:24 -05:00
2015-04-07 15:25:55 -04:00
2015-04-07 15:29:08 -04:00
2015-03-11 16:22:14 -04:00
2015-04-02 14:05:00 -04:00
2015-03-12 14:39:40 -04:00
2015-04-07 15:25:55 -04:00
2015-04-07 22:24:37 -04:00
2014-11-24 04:28:49 -05:00
2015-02-28 21:31:12 +01:00
2014-10-14 02:18:27 +02:00
2014-12-10 15:21:24 -05:00
2014-12-10 15:21:24 -05:00
2015-04-07 13:56:41 +02:00
2015-04-09 19:56:15 +02:00
2014-09-22 16:23:15 -04:00
2014-11-05 23:52:33 -08:00
2015-03-04 00:23:23 -05:00
2015-03-20 21:47:40 -04:00
2015-03-12 14:39:40 -04:00
2014-08-07 20:55:21 -04:00
2015-03-31 13:58:35 -04:00
2014-12-19 00:19:23 +01:00
2015-03-02 13:06:31 -05:00
2014-10-06 18:02:32 -04:00
2015-01-13 17:51:08 -05:00
2014-12-17 11:49:55 +01:00
2015-03-23 16:52:26 -04:00
2015-01-15 18:26:16 -05:00
2015-04-10 12:42:40 -07:00
2015-03-09 15:35:55 -04:00
2014-10-15 07:48:18 +02:00
2015-04-09 00:01:38 -04:00
2015-03-20 21:36:53 -04:00
2015-03-12 22:58:12 -04:00
2015-04-17 13:28:31 -04:00
2015-04-07 15:29:08 -04:00
2015-03-02 13:06:31 -05:00
2015-02-04 01:34:15 -05:00
2015-04-07 15:29:08 -04:00
2014-09-05 17:35:28 -07:00
2015-04-07 15:25:55 -04:00