]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mac80211: fix use-after-free
authorJohannes Berg <johannes.berg@intel.com>
Fri, 24 Sep 2010 09:20:47 +0000 (11:20 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 29 Oct 2010 04:51:21 +0000 (21:51 -0700)
commit22d59a19e77a8b8c2d1b83fc98272cc095ac92b7
tree04ce269cf37ccf609cdc19d26c9ed9f6db7a27c4
parentb6df308f73dee36d4c1810ede94068a78455c485
mac80211: fix use-after-free

commit cd87a2d3a33d75a646f1aa1aa2ee5bf712d6f963 upstream.

commit 8c0c709eea5cbab97fb464cd68b06f24acc58ee1
Author: Johannes Berg <johannes@sipsolutions.net>
Date:   Wed Nov 25 17:46:15 2009 +0100

    mac80211: move cmntr flag out of rx flags

moved the CMTR flag into the skb's status, and
in doing so introduced a use-after-free -- when
the skb has been handed to cooked monitors the
status setting will touch now invalid memory.

Additionally, moving it there has effectively
discarded the optimisation -- since the bit is
only ever set on freed SKBs, and those were a
copy, it could never be checked.

For the current release, fixing this properly
is a bit too involved, so let's just remove the
problematic code and leave userspace with one
copy of each frame for each virtual interface.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/mac80211/rx.c