All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anilkumar Kolli <akolli@codeaurora.org>
To: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
Cc: Ben Greear <greearb@candelatech.com>,
	Kalle Valo <kvalo@codeaurora.org>,
	"David S. Miller" <davem@davemloft.net>,
	ath10k@lists.infradead.org, linux-wireless@vger.kernel.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-wireless-owner@vger.kernel.org
Subject: Re: [PATCH] ath10k: htt_rx: Fix signedness bug in ath10k_update_per_peer_tx_stats
Date: Mon, 08 Oct 2018 12:08:06 +0530	[thread overview]
Message-ID: <af44d03892b3d51df391760af7af0382@codeaurora.org> (raw)
In-Reply-To: <fcc51fdd-fc31-9d2c-2e68-4ceecbb86129@embeddedor.com>

On 2018-10-06 00:45, Gustavo A. R. Silva wrote:
> On 10/5/18 9:14 PM, Gustavo A. R. Silva wrote:
>> 
>> 
>> On 10/5/18 9:09 PM, Ben Greear wrote:
>>> On 10/05/2018 11:42 AM, Gustavo A. R. Silva wrote:
>>>> Currently, the error handling for the call to function
>>>> ath10k_get_legacy_rate_idx() doesn't work because
>>>> *rate_idx* is of type u8 (8 bits, unsigned), which
>>>> makes it impossible for it to hold a value less
>>>> than 0.
>>>> 
>>>> Fix this by changing the type of variable *rate_idx*
>>>> to s8 (8 bits, signed).
>>> 
>>> There are more than 127 rates, are you sure this is doing
>>> what you want?
>>> 
>> 
>> Based on the following function, rate_idx can only hold values from 0 
>> to 11
>> 
> 
> ... and of course -EINVAL too
> 
>> static inline int ath10k_get_legacy_rate_idx(struct ath10k *ar, u8 
>> rate)
>> {
>>         static const u8 legacy_rates[] = {1, 2, 5, 11, 6, 9, 12,
>>                                           18, 24, 36, 48, 54};
>>         int i;
>> 
>>         for (i = 0; i < ARRAY_SIZE(legacy_rates); i++) {
>>                 if (rate == legacy_rates[i])
>>                         return i;
>>         }
>> 
>>         ath10k_warn(ar, "Invalid legacy rate %hhd peer stats", rate);
>>         return -EINVAL;
>> }
>> 
>> Thanks
>> --
>> Gustavo
>> 
>>> Thanks,
>>> Ben
>>> 
>>>> 
>>>> Addresses-Coverity-ID: 1473914 ("Unsigned compared against 0")
>>>> Fixes: 0189dbd71cbd ("ath10k: get the legacy rate index to update 
>>>> the txrate table")
>>>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>>>> ---
>>>>  drivers/net/wireless/ath/ath10k/htt_rx.c | 3 ++-
>>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>> 
>>>> diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c 
>>>> b/drivers/net/wireless/ath/ath10k/htt_rx.c
>>>> index f240525..edd0e74 100644
>>>> --- a/drivers/net/wireless/ath/ath10k/htt_rx.c
>>>> +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
>>>> @@ -2753,7 +2753,8 @@ ath10k_update_per_peer_tx_stats(struct ath10k 
>>>> *ar,
>>>>                  struct ath10k_per_peer_tx_stats *peer_stats)
>>>>  {
>>>>      struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv;
>>>> -    u8 rate = 0, rate_idx = 0, sgi;
>>>> +    u8 rate = 0, sgi;
>>>> +    s8 rate_idx = 0;
>>>>      struct rate_info txrate;
>>>> 
>>>>      lockdep_assert_held(&ar->data_lock);
>>>> 
>>> 
>>> 

I have sent a patch to address this,
https://patchwork.kernel.org/patch/10611943/

Thanks
Anil.

WARNING: multiple messages have this Message-ID (diff)
From: Anilkumar Kolli <akolli@codeaurora.org>
To: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
Cc: linux-wireless-owner@vger.kernel.org, netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	ath10k@lists.infradead.org, Ben Greear <greearb@candelatech.com>,
	"David S. Miller" <davem@davemloft.net>,
	Kalle Valo <kvalo@codeaurora.org>
Subject: Re: [PATCH] ath10k: htt_rx: Fix signedness bug in ath10k_update_per_peer_tx_stats
Date: Mon, 08 Oct 2018 12:08:06 +0530	[thread overview]
Message-ID: <af44d03892b3d51df391760af7af0382@codeaurora.org> (raw)
In-Reply-To: <fcc51fdd-fc31-9d2c-2e68-4ceecbb86129@embeddedor.com>

On 2018-10-06 00:45, Gustavo A. R. Silva wrote:
> On 10/5/18 9:14 PM, Gustavo A. R. Silva wrote:
>> 
>> 
>> On 10/5/18 9:09 PM, Ben Greear wrote:
>>> On 10/05/2018 11:42 AM, Gustavo A. R. Silva wrote:
>>>> Currently, the error handling for the call to function
>>>> ath10k_get_legacy_rate_idx() doesn't work because
>>>> *rate_idx* is of type u8 (8 bits, unsigned), which
>>>> makes it impossible for it to hold a value less
>>>> than 0.
>>>> 
>>>> Fix this by changing the type of variable *rate_idx*
>>>> to s8 (8 bits, signed).
>>> 
>>> There are more than 127 rates, are you sure this is doing
>>> what you want?
>>> 
>> 
>> Based on the following function, rate_idx can only hold values from 0 
>> to 11
>> 
> 
> ... and of course -EINVAL too
> 
>> static inline int ath10k_get_legacy_rate_idx(struct ath10k *ar, u8 
>> rate)
>> {
>>         static const u8 legacy_rates[] = {1, 2, 5, 11, 6, 9, 12,
>>                                           18, 24, 36, 48, 54};
>>         int i;
>> 
>>         for (i = 0; i < ARRAY_SIZE(legacy_rates); i++) {
>>                 if (rate == legacy_rates[i])
>>                         return i;
>>         }
>> 
>>         ath10k_warn(ar, "Invalid legacy rate %hhd peer stats", rate);
>>         return -EINVAL;
>> }
>> 
>> Thanks
>> --
>> Gustavo
>> 
>>> Thanks,
>>> Ben
>>> 
>>>> 
>>>> Addresses-Coverity-ID: 1473914 ("Unsigned compared against 0")
>>>> Fixes: 0189dbd71cbd ("ath10k: get the legacy rate index to update 
>>>> the txrate table")
>>>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>>>> ---
>>>>  drivers/net/wireless/ath/ath10k/htt_rx.c | 3 ++-
>>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>> 
>>>> diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c 
>>>> b/drivers/net/wireless/ath/ath10k/htt_rx.c
>>>> index f240525..edd0e74 100644
>>>> --- a/drivers/net/wireless/ath/ath10k/htt_rx.c
>>>> +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
>>>> @@ -2753,7 +2753,8 @@ ath10k_update_per_peer_tx_stats(struct ath10k 
>>>> *ar,
>>>>                  struct ath10k_per_peer_tx_stats *peer_stats)
>>>>  {
>>>>      struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv;
>>>> -    u8 rate = 0, rate_idx = 0, sgi;
>>>> +    u8 rate = 0, sgi;
>>>> +    s8 rate_idx = 0;
>>>>      struct rate_info txrate;
>>>> 
>>>>      lockdep_assert_held(&ar->data_lock);
>>>> 
>>> 
>>> 

I have sent a patch to address this,
https://patchwork.kernel.org/patch/10611943/

Thanks
Anil.

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

  reply	other threads:[~2018-10-08  6:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-05 18:42 [PATCH] ath10k: htt_rx: Fix signedness bug in ath10k_update_per_peer_tx_stats Gustavo A. R. Silva
2018-10-05 18:42 ` Gustavo A. R. Silva
2018-10-05 18:42 ` Gustavo A. R. Silva
2018-10-05 19:09 ` Ben Greear
2018-10-05 19:09   ` Ben Greear
2018-10-05 19:14   ` Gustavo A. R. Silva
2018-10-05 19:14     ` Gustavo A. R. Silva
2018-10-05 19:15     ` Gustavo A. R. Silva
2018-10-05 19:15       ` Gustavo A. R. Silva
2018-10-05 19:15       ` Gustavo A. R. Silva
2018-10-08  6:38       ` Anilkumar Kolli [this message]
2018-10-08  6:38         ` Anilkumar Kolli
2018-10-09 19:19         ` Gustavo A. R. Silva
2018-10-09 19:19           ` Gustavo A. R. Silva
2018-10-13 17:23 ` Kalle Valo
2018-10-13 17:23   ` Kalle Valo
2018-10-13 17:23 ` Kalle Valo
     [not found] ` <20181013172330.1CC8E60BFE@smtp.codeaurora.org>
2018-10-13 18:26   ` Gustavo A. R. Silva
2018-10-13 18:26     ` Gustavo A. R. Silva

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=af44d03892b3d51df391760af7af0382@codeaurora.org \
    --to=akolli@codeaurora.org \
    --cc=ath10k@lists.infradead.org \
    --cc=davem@davemloft.net \
    --cc=greearb@candelatech.com \
    --cc=gustavo@embeddedor.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless-owner@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.