]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ath6kl: Check for valid rate table index
authorRaja Mani <rmani@qca.qualcomm.com>
Fri, 21 Sep 2012 09:38:54 +0000 (15:08 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Wed, 24 Oct 2012 08:49:50 +0000 (11:49 +0300)
There are 28 items defined in rate table array 'wmi_rate_tbl'.
The rate table index (reply->rate_index) in ath6kl_wmi_bitrate_reply_rx()
func is not checked for the valid max limit index before accessing
rate table array. There may be some incidents to get memory crashes
without safe max check. Fix this.

Found this on code review.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/wmi.c

index 64b81fd554b3da41a1eec6c92c09ce6af401743e..f3aeebb2fd4254e8e704a0bc2b2f32237cb57d95 100644 (file)
@@ -1174,6 +1174,9 @@ static int ath6kl_wmi_bitrate_reply_rx(struct wmi *wmi, u8 *datap, int len)
                rate = RATE_AUTO;
        } else {
                index = reply->rate_index & 0x7f;
+               if (WARN_ON_ONCE(index > (RATE_MCS_7_40 + 1)))
+                       return -EINVAL;
+
                sgi = (reply->rate_index & 0x80) ? 1 : 0;
                rate = wmi_rate_tbl[index][sgi];
        }