aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2009-08-09 14:24:09 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-08 20:34:05 -0700
commit92a110d0d892b93bac2d5d862ad1f41a508a1865 (patch)
tree830d9ec6684459696c55716eb3103564d60e75cc
parent72b57bef7b0e7e3bae7ef607a05435d8fa115c31 (diff)
ar9170: fix read & write outside array bounds
commit e9d126cdfa60b575f1b5b02024c4faee27dccf07 upstream. Backport done by Christian Lamparter <chunkeey@googlemail.com> queue == __AR9170_NUM_TXQ would cause a bug on the next line. found by Smatch ( http://repo.or.cz/w/smatch.git ). Reported-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/net/wireless/ar9170/main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/ar9170/main.c b/drivers/net/wireless/ar9170/main.c
index 5996ff9f7f47..f839c83623c2 100644
--- a/drivers/net/wireless/ar9170/main.c
+++ b/drivers/net/wireless/ar9170/main.c
@@ -1486,13 +1486,14 @@ static int ar9170_conf_tx(struct ieee80211_hw *hw, u16 queue,
int ret;
mutex_lock(&ar->mutex);
- if ((param) && !(queue > ar->hw->queues)) {
+ if (queue < __AR9170_NUM_TXQ) {
memcpy(&ar->edcf[ar9170_qos_hwmap[queue]],
param, sizeof(*param));
ret = ar9170_set_qos(ar);
- } else
+ } else {
ret = -EINVAL;
+ }
mutex_unlock(&ar->mutex);
return ret;