diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-01-06 12:12:35 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-29 15:59:55 -0500 |
commit | e9aeabaeb9a0bece50100dc74bbd720a68cb8f5c (patch) | |
tree | 4e3a5ba61805a5169ecede23af67240a6121c4f3 | |
parent | 4797938c5dfa22af30fd16679192972f878419a1 (diff) |
mac80211: validate SIOCSIWPOWER arguments better
Don't accept any arguments we don't handle, and return error codes
instead of using an uninitialised stack value.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/wext.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c index 5690c3d41e7d..3fc1b903bfbc 100644 --- a/net/mac80211/wext.c +++ b/net/mac80211/wext.c | |||
@@ -853,9 +853,12 @@ static int ieee80211_ioctl_siwpower(struct net_device *dev, | |||
853 | ps = true; | 853 | ps = true; |
854 | break; | 854 | break; |
855 | default: /* Otherwise we ignore */ | 855 | default: /* Otherwise we ignore */ |
856 | break; | 856 | return -EINVAL; |
857 | } | 857 | } |
858 | 858 | ||
859 | if (wrq->flags & ~(IW_POWER_MODE | IW_POWER_TIMEOUT)) | ||
860 | return -EINVAL; | ||
861 | |||
859 | if (wrq->flags & IW_POWER_TIMEOUT) | 862 | if (wrq->flags & IW_POWER_TIMEOUT) |
860 | timeout = wrq->value / 1000; | 863 | timeout = wrq->value / 1000; |
861 | 864 | ||