2013-06-26 15:15:12

by John W. Linville

[permalink] [raw]
Subject: [PATCH] iw: fix incorrect bit shifting in print_ht_mcs

From: "John W. Linville" <[email protected]>

>From a Coverity run on version 3.10:

iw-3.10/util.c:569:result_independent_of_operands –
"mcs[10] >> 8" is 0 regardless of the values of its operands. This occurs as the bitwise first operand of '&'.

This seems more like what was intended...

Signed-off-by: John W. Linville <[email protected]>
---
util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util.c b/util.c
index d8b76ee..e3d0c27 100644
--- a/util.c
+++ b/util.c
@@ -574,7 +574,7 @@ void print_ht_mcs(const __u8 *mcs)
unsigned int tx_max_num_spatial_streams, max_rx_supp_data_rate;
bool tx_mcs_set_defined, tx_mcs_set_equal, tx_unequal_modulation;

- max_rx_supp_data_rate = ((mcs[10] >> 8) & ((mcs[11] & 0x3) << 8));
+ max_rx_supp_data_rate = (mcs[10] & ((mcs[11] & 0x3) << 8));
tx_mcs_set_defined = !!(mcs[12] & (1 << 0));
tx_mcs_set_equal = !(mcs[12] & (1 << 1));
tx_max_num_spatial_streams = ((mcs[12] >> 2) & 3) + 1;
--
1.8.1.4



2013-06-26 15:24:41

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] iw: fix incorrect bit shifting in print_ht_mcs

On Wed, 2013-06-26 at 11:07 -0400, John W. Linville wrote:
> From: "John W. Linville" <[email protected]>
>
> From a Coverity run on version 3.10:
>
> iw-3.10/util.c:569:result_independent_of_operands –
> "mcs[10] >> 8" is 0 regardless of the values of its operands. This occurs as the bitwise first operand of '&'.
>
> This seems more like what was intended...

Applied both, thanks.

johannes