cfg80211: allow wext to remove keys that don't exist
Some applications using wireless extensions expect to be able to remove a key that doesn't exist. One example is wpa_supplicant which doesn't actually change behaviour when running into an error while trying to do that, but it prints an error message which users interpret as wpa_supplicant having problems. The safe thing to do is not change the behaviour of wireless extensions any more, so when the driver reports -ENOENT let the wext bridge code return success to userspace. To guarantee this, also document that drivers should return -ENOENT when the key doesn't exist. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
73606d0036
commit
e3da574a0d
@@ -504,6 +504,13 @@ static int cfg80211_set_encryption(struct cfg80211_registered_device *rdev,
|
||||
else if (idx == wdev->wext.default_mgmt_key)
|
||||
wdev->wext.default_mgmt_key = -1;
|
||||
}
|
||||
/*
|
||||
* Applications using wireless extensions expect to be
|
||||
* able to delete keys that don't exist, so allow that.
|
||||
*/
|
||||
if (err == -ENOENT)
|
||||
return 0;
|
||||
|
||||
return err;
|
||||
} else {
|
||||
if (addr)
|
||||
|
Reference in New Issue
Block a user