summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuan-Gu Wei <ygwei@qca.qualcomm.com>2014-07-09 17:59:47 +0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-07-10 21:44:59 -0700
commit548ac90f9ef5ea91418467fd9fcca9aa48ae6cdf (patch)
tree73b5a92587f30e0ceb69715338bf5f0bdf2e3042
parent25bddc15856ce5c9d3eb19c4d3a4e5ca073f0102 (diff)
qcacld: drop the encrypted BC/MC management frames
Since BC/MC management frames should be protected by BIP and should not be encrypted, when receiving encrypted BC/MC management frame, drop it. Change-Id: I98139cc19ff634baa372366097d58730b616c4da CRs-Fixed: 686581
-rw-r--r--CORE/CLD_TXRX/TLSHIM/tl_shim.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
index 75af0a8e5f44..5f53453ea9e1 100644
--- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c
+++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c
@@ -621,6 +621,15 @@ static int tlshim_mgmt_rx_process(void *context, u_int8_t *data,
{
if ((wh)->i_fc[1] & IEEE80211_FC1_WEP)
{
+ if (IEEE80211_IS_BROADCAST(wh->i_addr1) ||
+ IEEE80211_IS_MULTICAST(wh->i_addr1))
+ {
+ TLSHIM_LOGE("Encrypted BC/MC frame"
+ " dropping the frame");
+ vos_pkt_return_packet(rx_pkt);
+ return 0;
+ }
+
orig_hdr = (u_int8_t*) adf_nbuf_data(wbuf);
/* Strip privacy headers (and trailer)