• P
    mac80211: fix NULL pointer dereference in ieee80211_key_alloc() · 1f951a7f
    Petr Štetiar 提交于
    The ieee80211_key struct can be kfree()d several times in the function, for
    example if some of the key setup functions fails beforehand, but there's no
    check if the struct is still valid before we call memcpy() and INIT_LIST_HEAD()
    on it.  In some cases (like it was in my case), if there's missing aes-generic
    module it could lead to the following kernel OOPS:
    
    	Unable to handle kernel NULL pointer dereference at virtual address 0000018c
    	....
    	PC is at memcpy+0x80/0x29c
    	...
    	Backtrace:
    	[<bf11c5e4>] (ieee80211_key_alloc+0x0/0x234 [mac80211]) from [<bf1148b4>] (ieee80211_add_key+0x70/0x12c [mac80211])
    	[<bf114844>] (ieee80211_add_key+0x0/0x12c [mac80211]) from [<bf070cc0>] (__cfg80211_set_encryption+0x2a8/0x464 [cfg80211])
    Signed-off-by: NPetr Štetiar <ynezz@true.cz>
    Reviewed-by: NJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
    1f951a7f
key.c 13.0 KB