iwlegacy: off by one in iwl3945_hw_build_tx_cmd_rate()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 23 Dec 2011 07:13:42 +0000 (08:13 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 4 Jan 2012 19:30:44 +0000 (14:30 -0500)
We use "rate_index" like this:
rate = iwl3945_rates[rate_index].plcp;
The iwl3945_rates[] array has IWL_RATE_COUNT_3945 elements so the
limit here is off by one.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlegacy/3945.c

index 863664f9ba8bbbb4fdf166726e81075a326e324b..0b99deb4842626a1907d5ef3b2aac093a111462c 100644 (file)
@@ -683,7 +683,7 @@ il3945_hw_build_tx_cmd_rate(struct il_priv *il, struct il_device_cmd *cmd,
                            struct ieee80211_hdr *hdr, int sta_id, int tx_id)
 {
        u16 hw_value = ieee80211_get_tx_rate(il->hw, info)->hw_value;
-       u16 rate_idx = min(hw_value & 0xffff, RATE_COUNT_3945);
+       u16 rate_idx = min(hw_value & 0xffff, RATE_COUNT_3945 - 1);
        u16 rate_mask;
        int rate;
        u8 rts_retry_limit;