diff mbox

cfg80211: fix station change if TDLS isn't supported

Message ID 1361196149-10731-1-git-send-email-johannes@sipsolutions.net (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Johannes Berg Feb. 18, 2013, 2:02 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

Larry noticed (and bisected) that commit df881293c6ba9a12868491a717b25
"cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station"
broke secure connections. This is is the case only for drivers that
don't support TDLS, where any kind of change, even just the change of
authorized flag that is required for normal operation, was rejected
now. To fix this, remove the checks. I have some patches that will add
proper verification for all the different cases later.

Cc: Jouni Malinen <j@w1.fi>
Bisected-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/wireless/nl80211.c | 8 --------
 1 file changed, 8 deletions(-)

Comments

Larry Finger Feb. 18, 2013, 5:24 p.m. UTC | #1
On 02/18/2013 08:02 AM, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> Larry noticed (and bisected) that commit df881293c6ba9a12868491a717b25
> "cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station"
> broke secure connections. This is is the case only for drivers that
> don't support TDLS, where any kind of change, even just the change of
> authorized flag that is required for normal operation, was rejected
> now. To fix this, remove the checks. I have some patches that will add
> proper verification for all the different cases later.
>
> Cc: Jouni Malinen <j@w1.fi>
> Bisected-by: Larry Finger <Larry.Finger@lwfinger.net>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Johannes,

Thanks. This patch does fix the problem. The only thing I saw was an unused 
variable:

net/wireless/nl80211.c: In function ‘nl80211_set_station_tdls’:
net/wireless/nl80211.c:3421:37: warning: unused variable ‘rdev’ [-Wunused-variable]

Tested-by: Larry Finger <Larry.Finger@lwfinger.net>

Larry

> ---
>   net/wireless/nl80211.c | 8 --------
>   1 file changed, 8 deletions(-)
>
> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
> index 580ffea..d86af75 100644
> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -3423,14 +3423,6 @@ static int nl80211_set_station_tdls(struct genl_info *info,
>   	struct nlattr *nla;
>   	int err;
>
> -	/* Can only set if TDLS ... */
> -	if (!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_TDLS))
> -		return -EOPNOTSUPP;
> -
> -	/* ... with external setup is supported */
> -	if (!(rdev->wiphy.flags & WIPHY_FLAG_TDLS_EXTERNAL_SETUP))
> -		return -EOPNOTSUPP;
> -
>   	/* Dummy STA entry gets updated once the peer capabilities are known */
>   	if (info->attrs[NL80211_ATTR_HT_CAPABILITY])
>   		params->ht_capa =
>

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Johannes Berg Feb. 18, 2013, 5:25 p.m. UTC | #2
On Mon, 2013-02-18 at 11:24 -0600, Larry Finger wrote:
> On 02/18/2013 08:02 AM, Johannes Berg wrote:
> > From: Johannes Berg <johannes.berg@intel.com>
> >
> > Larry noticed (and bisected) that commit df881293c6ba9a12868491a717b25
> > "cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station"
> > broke secure connections. This is is the case only for drivers that
> > don't support TDLS, where any kind of change, even just the change of
> > authorized flag that is required for normal operation, was rejected
> > now. To fix this, remove the checks. I have some patches that will add
> > proper verification for all the different cases later.
> >
> > Cc: Jouni Malinen <j@w1.fi>
> > Bisected-by: Larry Finger <Larry.Finger@lwfinger.net>
> > Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> 
> Johannes,
> 
> Thanks. This patch does fix the problem. The only thing I saw was an unused 
> variable:
> 
> net/wireless/nl80211.c: In function ‘nl80211_set_station_tdls’:
> net/wireless/nl80211.c:3421:37: warning: unused variable ‘rdev’ [-Wunused-variable]
> 
> Tested-by: Larry Finger <Larry.Finger@lwfinger.net>

Thanks, I'll fix that variable and apply the patch.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 580ffea..d86af75 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -3423,14 +3423,6 @@  static int nl80211_set_station_tdls(struct genl_info *info,
 	struct nlattr *nla;
 	int err;
 
-	/* Can only set if TDLS ... */
-	if (!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_TDLS))
-		return -EOPNOTSUPP;
-
-	/* ... with external setup is supported */
-	if (!(rdev->wiphy.flags & WIPHY_FLAG_TDLS_EXTERNAL_SETUP))
-		return -EOPNOTSUPP;
-
 	/* Dummy STA entry gets updated once the peer capabilities are known */
 	if (info->attrs[NL80211_ATTR_HT_CAPABILITY])
 		params->ht_capa =