Jiri Pirko
57e5956319
team: fix possible null pointer dereference in team_handle_frame
...
Currently following race is possible in team:
CPU0 CPU1
team_port_del
team_upper_dev_unlink
priv_flags &= ~IFF_TEAM_PORT
team_handle_frame
team_port_get_rcu
team_port_exists
priv_flags & IFF_TEAM_PORT == 0
return NULL (instead of port got
from rx_handler_data)
netdev_rx_handler_unregister
The thing is that the flag is removed before rx_handler is unregistered.
If team_handle_frame is called in between, team_port_exists returns 0
and team_port_get_rcu will return NULL.
So do not check the flag here. It is guaranteed by netdev_rx_handler_unregister
that team_handle_frame will always see valid rx_handler_data pointer.
Signed-off-by: Jiri Pirko <jiri@resnulli.us >
Fixes: 3d249d4ca7 ("net: introduce ethernet teaming device")
Signed-off-by: David S. Miller <davem@davemloft.net >
2015-02-23 15:30:28 -05:00
..
2015-02-15 19:40:10 +01:00
2015-02-10 10:23:15 +00:00
2015-01-25 09:17:57 -08:00
2015-02-12 14:30:53 -08:00
2015-01-18 00:28:41 -05:00
2015-02-15 11:11:47 -08:00
2015-01-29 10:54:43 +02:00
2015-02-16 17:56:04 -08:00
2015-02-23 09:30:35 +02:00
2015-02-17 09:27:54 -08:00
2015-02-17 13:20:42 -08:00
2015-02-17 09:38:59 -08:00
2015-02-17 09:27:54 -08:00
2015-02-04 10:42:55 -08:00
2015-02-13 21:39:06 +01:00
2015-02-17 14:17:51 -08:00
2015-02-18 08:49:20 -08:00
2015-02-13 21:39:06 +01:00
2015-02-18 08:49:20 -08:00
2015-01-30 17:00:43 +01:00
2015-01-26 13:47:55 +09:00
2015-02-02 21:56:03 +01:00
2015-02-13 21:21:41 -08:00
2015-02-12 08:51:56 -08:00
2015-02-16 15:48:00 -08:00
2015-02-09 11:17:45 +01:00
2015-01-04 20:19:30 +01:00
2015-02-15 10:48:44 -08:00
2015-02-03 12:17:12 -08:00
2015-01-30 17:58:43 +01:00
2015-02-15 19:40:09 +01:00
2015-02-15 11:30:39 -08:00
2015-02-17 15:18:19 -08:00
2015-02-13 21:21:38 -08:00
2015-02-12 09:16:56 -08:00
2015-02-16 15:20:40 -08:00
2015-02-22 15:24:10 -05:00
2015-02-02 14:36:10 -08:00
2015-02-04 12:10:41 +01:00
2015-02-11 12:56:40 -08:00
2015-02-03 15:48:51 -08:00
2015-02-17 17:34:21 -08:00
2015-02-11 17:06:05 -08:00
2015-01-29 22:57:43 -06:00
2015-02-03 15:58:39 -08:00
2015-02-18 09:05:48 -08:00
2015-02-15 10:48:44 -08:00
2015-02-04 13:39:14 +01:00
2015-02-18 08:01:44 -08:00
2015-02-23 15:30:28 -05:00
2015-02-04 09:15:18 +01:00
2015-02-17 09:38:59 -08:00
2015-01-16 10:04:43 -06:00
2015-01-15 13:44:50 +01:00
2015-02-10 15:09:41 -08:00
2015-02-17 09:38:59 -08:00
2015-02-15 10:24:55 -08:00
2015-02-11 11:23:13 -08:00
2015-01-23 11:10:32 -08:00
2015-02-15 11:37:02 -08:00
2015-01-28 15:08:10 +01:00
2015-01-22 17:31:21 +11:00
2015-02-18 08:40:29 +01:00
2015-02-18 08:49:20 -08:00
2015-02-18 09:05:48 -08:00
2015-01-16 19:11:31 -08:00
2015-02-17 09:17:33 -08:00
2015-02-13 09:55:09 -08:00
2015-02-17 15:18:19 -08:00
2015-02-17 09:38:59 -08:00
2015-02-11 14:38:28 -08:00
2015-02-11 14:38:29 -08:00
2015-02-17 14:56:45 -08:00
2015-01-18 01:03:45 -05:00
2015-01-27 16:59:56 -08:00
2015-02-15 11:37:02 -08:00
2015-01-12 05:04:13 -08:00
2015-02-17 17:41:19 -08:00
2015-02-15 10:24:55 -08:00
2015-01-07 10:29:11 -07:00
2015-02-15 08:17:15 -08:00
2015-02-11 17:06:05 -08:00
2015-01-06 16:35:36 +02:00
2015-01-12 05:04:12 -08:00
2015-02-17 21:34:13 +01:00
2015-02-11 10:28:45 -08:00
2015-02-03 15:58:39 -08:00
2014-12-22 11:47:37 +02:00