From patchwork Tue Mar 30 06:35:23 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jouni Malinen X-Patchwork-Id: 89185 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o2U6ZV55008820 for ; Tue, 30 Mar 2010 06:35:32 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755620Ab0C3Gfb (ORCPT ); Tue, 30 Mar 2010 02:35:31 -0400 Received: from 128-177-27-249.ip.openhosting.com ([128.177.27.249]:52503 "EHLO jmalinen.user.openhosting.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755578Ab0C3Gfa (ORCPT ); Tue, 30 Mar 2010 02:35:30 -0400 Received: from jm (216.156.83.74.ptr.us.xo.net [216.156.83.74]) (authenticated bits=0) by jmalinen.user.openhosting.com (8.13.8/8.13.8) with ESMTP id o2U6ZN7h021326 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 30 Mar 2010 02:35:24 -0400 Received: by jm (sSMTP sendmail emulation); Mon, 29 Mar 2010 23:35:23 -0700 Date: Mon, 29 Mar 2010 23:35:23 -0700 From: Jouni Malinen To: "John W. Linville" , Johannes Berg Cc: linux-wireless@vger.kernel.org Subject: [PATCH] mac80211: Fix BIP to be used only with group-addressed frames Message-ID: <20100330063523.GC4953@jm.kir.nu> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Tue, 30 Mar 2010 06:35:32 +0000 (UTC) --- wireless-testing.orig/net/mac80211/tx.c 2010-03-29 23:22:51.000000000 -0700 +++ wireless-testing/net/mac80211/tx.c 2010-03-29 23:33:24.000000000 -0700 @@ -513,6 +513,8 @@ ieee80211_tx_h_select_key(struct ieee802 else if (tx->sta && (key = rcu_dereference(tx->sta->key))) tx->key = key; else if (ieee80211_is_mgmt(hdr->frame_control) && + is_multicast_ether_addr(hdr->addr1) && + ieee80211_is_robust_mgmt_frame(hdr) && (key = rcu_dereference(tx->sdata->default_mgmt_key))) tx->key = key; else if ((key = rcu_dereference(tx->sdata->default_key)))