Search Linux Wireless

Re: [PATCH] cfg80211: avoid setting default_key if add_key fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2009-07-20 at 16:12 +0800, Zhu Yi wrote:
> In cfg80211_upload_connect_keys(), we call add_key, set_default_key
> and set_default_mgmt_key (if applicable) one by one. If one of these
> operations fails, we should stop calling the following functions.
> Because if the key is not added successfully, we should not set it as
> default key anyway.

Should we even disconnect again in that case?

johannes

> Signed-off-by: Zhu Yi <yi.zhu@xxxxxxxxx>
> ---
>  net/wireless/util.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/net/wireless/util.c b/net/wireless/util.c
> index 4bab380..ba387d8 100644
> --- a/net/wireless/util.c
> +++ b/net/wireless/util.c
> @@ -546,13 +546,17 @@ void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
>  		if (!wdev->connect_keys->params[i].cipher)
>  			continue;
>  		if (rdev->ops->add_key(wdev->wiphy, dev, i, NULL,
> -					&wdev->connect_keys->params[i]))
> +					&wdev->connect_keys->params[i])) {
>  			printk(KERN_ERR "%s: failed to set key %d\n",
>  				dev->name, i);
> +			continue;
> +		}
>  		if (wdev->connect_keys->def == i)
> -			if (rdev->ops->set_default_key(wdev->wiphy, dev, i))
> +			if (rdev->ops->set_default_key(wdev->wiphy, dev, i)) {
>  				printk(KERN_ERR "%s: failed to set defkey %d\n",
>  					dev->name, i);
> +				continue;
> +			}
>  		if (wdev->connect_keys->defmgmt == i)
>  			if (rdev->ops->set_default_mgmt_key(wdev->wiphy, dev, i))
>  				printk(KERN_ERR "%s: failed to set mgtdef %d\n",

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux