2019-03-18 10:59:03

by Colin King

[permalink] [raw]
Subject: [PATCH] staging: ks7010: remove redundant auth_type check

From: Colin Ian King <[email protected]>

The range check on auth_type is redundant as there is a prior
check on the auth_type values and the only way the block is entered
is if auth_type is one of TYPE_PMK1, TYPE_GMK1 and TYPE_GMK1. Hence
the auth_type check can be removed.

Detected by static analysis with cppcheck.

Signed-off-by: Colin Ian King <[email protected]>
---
drivers/staging/ks7010/ks_hostif.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/ks7010/ks_hostif.c b/drivers/staging/ks7010/ks_hostif.c
index 06ebea0be118..31a536791d5c 100644
--- a/drivers/staging/ks7010/ks_hostif.c
+++ b/drivers/staging/ks7010/ks_hostif.c
@@ -362,6 +362,8 @@ int hostif_data_indication_wpa(struct ks_wlan_private *priv,
(auth_type == TYPE_GMK2 &&
priv->wpa.group_suite == IW_AUTH_CIPHER_TKIP)) &&
key->key_len) {
+ int ret;
+
netdev_dbg(priv->net_dev, "TKIP: protocol=%04X: size=%u\n",
eth_proto, priv->rx_size);
/* MIC save */
@@ -369,15 +371,11 @@ int hostif_data_indication_wpa(struct ks_wlan_private *priv,
(priv->rxp) + ((priv->rx_size) - sizeof(recv_mic)),
sizeof(recv_mic));
priv->rx_size = priv->rx_size - sizeof(recv_mic);
- if (auth_type > 0 && auth_type < 4) { /* auth_type check */
- int ret;
-
- ret = michael_mic(key->rx_mic_key,
- priv->rxp, priv->rx_size,
- 0, mic);
- if (ret < 0)
- return ret;
- }
+
+ ret = michael_mic(key->rx_mic_key, priv->rxp, priv->rx_size,
+ 0, mic);
+ if (ret < 0)
+ return ret;
if (memcmp(mic, recv_mic, sizeof(mic)) != 0) {
now = jiffies;
mic_failure = &priv->wpa.mic_failure;
--
2.20.1



2019-03-18 21:34:22

by Jeremy Sowden

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: remove redundant auth_type check

On 2019-03-18, at 10:57:49 +0000, Colin King wrote:
> The range check on auth_type is redundant as there is a prior
> check on the auth_type values and the only way the block is entered
> is if auth_type is one of TYPE_PMK1, TYPE_GMK1 and TYPE_GMK1.

"... and TYPE_GMK2."

> Hence the auth_type check can be removed.
>
> Detected by static analysis with cppcheck.
>
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/staging/ks7010/ks_hostif.c | 16 +++++++---------
> 1 file changed, 7 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/staging/ks7010/ks_hostif.c
> b/drivers/staging/ks7010/ks_hostif.c
> index 06ebea0be118..31a536791d5c 100644
> --- a/drivers/staging/ks7010/ks_hostif.c
> +++ b/drivers/staging/ks7010/ks_hostif.c
> @@ -362,6 +362,8 @@ int hostif_data_indication_wpa(struct
> ks_wlan_private *priv,
> (auth_type == TYPE_GMK2 &&
> priv->wpa.group_suite == IW_AUTH_CIPHER_TKIP)) &&
> key->key_len) {
> + int ret;
> +
> netdev_dbg(priv->net_dev, "TKIP: protocol=%04X: size=%u\n",
> eth_proto, priv->rx_size);
> /* MIC save */
> @@ -369,15 +371,11 @@ int hostif_data_indication_wpa(struct
> ks_wlan_private *priv,
> (priv->rxp) + ((priv->rx_size) - sizeof(recv_mic)),
> sizeof(recv_mic));
> priv->rx_size = priv->rx_size - sizeof(recv_mic);
> - if (auth_type > 0 && auth_type < 4) { /* auth_type check */
> - int ret;
> -
> - ret = michael_mic(key->rx_mic_key,
> - priv->rxp, priv->rx_size,
> - 0, mic);
> - if (ret < 0)
> - return ret;
> - }
> +
> + ret = michael_mic(key->rx_mic_key, priv->rxp, priv->rx_size,
> + 0, mic);
> + if (ret < 0)
> + return ret;
> if (memcmp(mic, recv_mic, sizeof(mic)) != 0) {
> now = jiffies;
> mic_failure = &priv->wpa.mic_failure;

Acked-by: Jeremy Sowden <[email protected]>

2019-03-19 13:30:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: remove redundant auth_type check

On Mon, Mar 18, 2019 at 09:32:59PM +0000, Jeremy Sowden wrote:
> On 2019-03-18, at 10:57:49 +0000, Colin King wrote:
> > The range check on auth_type is redundant as there is a prior
> > check on the auth_type values and the only way the block is entered
> > is if auth_type is one of TYPE_PMK1, TYPE_GMK1 and TYPE_GMK1.
>
> "... and TYPE_GMK2."

I'll go edit that, thanks.

greg k-h

2019-03-19 13:54:02

by Colin King

[permalink] [raw]
Subject: Re: [PATCH] staging: ks7010: remove redundant auth_type check

On 19/03/2019 13:29, Greg Kroah-Hartman wrote:
> On Mon, Mar 18, 2019 at 09:32:59PM +0000, Jeremy Sowden wrote:
>> On 2019-03-18, at 10:57:49 +0000, Colin King wrote:
>>> The range check on auth_type is redundant as there is a prior
>>> check on the auth_type values and the only way the block is entered
>>> is if auth_type is one of TYPE_PMK1, TYPE_GMK1 and TYPE_GMK1.
>>
>> "... and TYPE_GMK2."
>
> I'll go edit that, thanks.
>
> greg k-h
>
Thanks for fixing my typo.