diff options
author | Veaceslav Falico <vfalico@redhat.com> | 2014-02-20 12:07:57 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-20 13:20:55 -0500 |
commit | 010d3c3989706d800ae72253773fa6537cc9f74c (patch) | |
tree | bc10b84b5f84cd00b934dcb113bee0a76b87d3d9 /net/wireless/reg.c | |
parent | a1eabb0178bcef8eee6286bc646b66e23f4f77ea (diff) | |
download | linux-stable-010d3c3989706d800ae72253773fa6537cc9f74c.tar.gz linux-stable-010d3c3989706d800ae72253773fa6537cc9f74c.tar.bz2 linux-stable-010d3c3989706d800ae72253773fa6537cc9f74c.zip |
bonding: fix bond_arp_rcv() race of curr_active_slave
bond->curr_active_slave can be changed between its deferences, even to
NULL, and thus we might panic.
We're always holding the rcu (rx_handler->bond_handle_frame()->bond_arp_rcv())
so fix this by rcu_dereferencing() it and using the saved.
Reported-by: Ding Tianhong <dingtianhong@huawei.com>
Fixes: aeea64a ("bonding: don't trust arp requests unless active slave really works")
CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Acked-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless/reg.c')
0 files changed, 0 insertions, 0 deletions