All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements
@ 2022-04-08  1:12 Rebecca Mckeever
  2022-04-08  1:12 ` [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment Rebecca Mckeever
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Rebecca Mckeever @ 2022-04-08  1:12 UTC (permalink / raw)
  To: outreachy
  Cc: Greg Kroah-Hartman, linux-staging, linux-kernel, Rebecca Mckeever

These patches replace ternary and if else statements with
more readable statements. Found with minmax coccinelle script.

---
v1 -> v2:
* Patch 1: "staging: rtl8192u: replace ternary statement with if and
* assignment"
  * replaced max macro with an if statement followed by an assignment

* Patch 2: "staging: rtl8192u: use min_t/max_t macros instead of if
* else"
  * changed the type argument in min_t and max_t from u8 to u32
---

Rebecca Mckeever (2):
  staging: rtl8192u: replace ternary statement with if and assignment
  staging: rtl8192u: use min_t/max_t macros instead of if else

 drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c   |  4 +++-
 drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 13 +++++--------
 2 files changed, 8 insertions(+), 9 deletions(-)

-- 
2.32.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  1:12 [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Rebecca Mckeever
@ 2022-04-08  1:12 ` Rebecca Mckeever
  2022-04-08  4:15   ` Julia Lawall
  2022-04-08  1:12 ` [PATCH v2 2/2] staging: rtl8192u: use min_t/max_t macros instead of if else Rebecca Mckeever
  2022-04-08  6:39 ` [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Dan Carpenter
  2 siblings, 1 reply; 12+ messages in thread
From: Rebecca Mckeever @ 2022-04-08  1:12 UTC (permalink / raw)
  To: outreachy
  Cc: Greg Kroah-Hartman, linux-staging, linux-kernel, Rebecca Mckeever

Replace ternary statement with an if statement followed by an assignment
to increase readability and make error handling more obvious.
Found with minmax coccinelle script.

Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
---
 drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
index 78cc8f357bbc..9885917b9199 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
@@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
 		return 0;
 	}
 	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
-	erq->length = (len >= 0 ? len : 0);
+	if (len < 0)
+		len = 0;
+	erq->length = len;
 
 	erq->flags |= IW_ENCODE_ENABLED;
 
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 2/2] staging: rtl8192u: use min_t/max_t macros instead of if else
  2022-04-08  1:12 [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Rebecca Mckeever
  2022-04-08  1:12 ` [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment Rebecca Mckeever
@ 2022-04-08  1:12 ` Rebecca Mckeever
  2022-04-08  6:39 ` [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Dan Carpenter
  2 siblings, 0 replies; 12+ messages in thread
From: Rebecca Mckeever @ 2022-04-08  1:12 UTC (permalink / raw)
  To: outreachy
  Cc: Greg Kroah-Hartman, linux-staging, linux-kernel, Rebecca Mckeever

Replace if else statement with min_t or max_t macros to increase
readability and conform to Linux kernel coding style. The _t versions
of the macros must be used to avoid applying typeof to the bit fields
pPeerHTCap->MaxRxAMPDUFactor, and pPeerHTCap->MPDUDensity.

Using u32 assures the reader that the value with not be truncated
without having to look up the types of the variables involved.
Found with minmax coccinelle script.

Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
---
 drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c b/drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c
index dba3f2db9f48..358c35d9589c 100644
--- a/drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c
+++ b/drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c
@@ -940,10 +940,8 @@ void HTOnAssocRsp(struct ieee80211_device *ieee)
 			else
 				pHTInfo->CurrentAMPDUFactor = HT_AGG_SIZE_64K;
 		} else {
-			if (pPeerHTCap->MaxRxAMPDUFactor < HT_AGG_SIZE_32K)
-				pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor;
-			else
-				pHTInfo->CurrentAMPDUFactor = HT_AGG_SIZE_32K;
+			pHTInfo->CurrentAMPDUFactor = min_t(u32, pPeerHTCap->MaxRxAMPDUFactor,
+							    HT_AGG_SIZE_32K);
 		}
 	}
 
@@ -951,10 +949,9 @@ void HTOnAssocRsp(struct ieee80211_device *ieee)
 	 * <2> Set AMPDU Minimum MPDU Start Spacing
 	 * 802.11n 3.0 section 9.7d.3
 	 */
-	if (pHTInfo->MPDU_Density > pPeerHTCap->MPDUDensity)
-		pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density;
-	else
-		pHTInfo->CurrentMPDUDensity = pPeerHTCap->MPDUDensity;
+	pHTInfo->CurrentMPDUDensity = max_t(u32, pHTInfo->MPDU_Density,
+					    pPeerHTCap->MPDUDensity);
+
 	if (ieee->pairwise_key_type != KEY_TYPE_NA)
 		pHTInfo->CurrentMPDUDensity	= 7; // 8us
 	// Force TX AMSDU
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  1:12 ` [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment Rebecca Mckeever
@ 2022-04-08  4:15   ` Julia Lawall
  2022-04-08  5:09     ` Greg Kroah-Hartman
  2022-04-08  5:57     ` Dan Carpenter
  0 siblings, 2 replies; 12+ messages in thread
From: Julia Lawall @ 2022-04-08  4:15 UTC (permalink / raw)
  To: Rebecca Mckeever
  Cc: outreachy, Greg Kroah-Hartman, linux-staging, linux-kernel



On Thu, 7 Apr 2022, Rebecca Mckeever wrote:

> Replace ternary statement with an if statement followed by an assignment
> to increase readability and make error handling more obvious.
> Found with minmax coccinelle script.
>
> Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
> ---
>  drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> index 78cc8f357bbc..9885917b9199 100644
> --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
>  		return 0;
>  	}
>  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> -	erq->length = (len >= 0 ? len : 0);
> +	if (len < 0)
> +		len = 0;
> +	erq->length = len;

Maybe you could use max here?

julia

>
>  	erq->flags |= IW_ENCODE_ENABLED;
>
> --
> 2.32.0
>
>
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  4:15   ` Julia Lawall
@ 2022-04-08  5:09     ` Greg Kroah-Hartman
  2022-04-08  5:57     ` Dan Carpenter
  1 sibling, 0 replies; 12+ messages in thread
From: Greg Kroah-Hartman @ 2022-04-08  5:09 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Rebecca Mckeever, outreachy, linux-staging, linux-kernel

On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> 
> 
> On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> 
> > Replace ternary statement with an if statement followed by an assignment
> > to increase readability and make error handling more obvious.
> > Found with minmax coccinelle script.
> >
> > Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
> > ---
> >  drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > index 78cc8f357bbc..9885917b9199 100644
> > --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> >  		return 0;
> >  	}
> >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > -	erq->length = (len >= 0 ? len : 0);
> > +	if (len < 0)
> > +		len = 0;
> > +	erq->length = len;
> 
> Maybe you could use max here?

Dan said to not do this on based on the first submission :)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  4:15   ` Julia Lawall
  2022-04-08  5:09     ` Greg Kroah-Hartman
@ 2022-04-08  5:57     ` Dan Carpenter
  2022-04-08  6:14       ` Joe Perches
  2022-04-08  8:50       ` Julia Lawall
  1 sibling, 2 replies; 12+ messages in thread
From: Dan Carpenter @ 2022-04-08  5:57 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Rebecca Mckeever, outreachy, Greg Kroah-Hartman, linux-staging,
	linux-kernel

On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> 
> > Replace ternary statement with an if statement followed by an assignment
> > to increase readability and make error handling more obvious.
> > Found with minmax coccinelle script.
> >
> > Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
> > ---
> >  drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > index 78cc8f357bbc..9885917b9199 100644
> > --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> >  		return 0;
> >  	}
> >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > -	erq->length = (len >= 0 ? len : 0);
> > +	if (len < 0)
> > +		len = 0;
> > +	erq->length = len;
> 
> Maybe you could use max here?

Initially Rebecca did use max() but I NAKed it.  It's really not less
readable.  Better to handle the error explicitly.  Keep the error path
indented two tabs.  Separate from the success path.

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  5:57     ` Dan Carpenter
@ 2022-04-08  6:14       ` Joe Perches
  2022-04-08  6:31         ` Dan Carpenter
  2022-04-08  8:50       ` Julia Lawall
  1 sibling, 1 reply; 12+ messages in thread
From: Joe Perches @ 2022-04-08  6:14 UTC (permalink / raw)
  To: Dan Carpenter, Julia Lawall
  Cc: Rebecca Mckeever, outreachy, Greg Kroah-Hartman, linux-staging,
	linux-kernel

On Fri, 2022-04-08 at 08:57 +0300, Dan Carpenter wrote:
> On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> > On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> > 
> > > Replace ternary statement with an if statement followed by an assignment
> > > to increase readability and make error handling more obvious.
> > > Found with minmax coccinelle script.
[]
> > > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
[]
> > > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> > >  		return 0;
> > >  	}
> > >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > > -	erq->length = (len >= 0 ? len : 0);
> > > +	if (len < 0)
> > > +		len = 0;
> > > +	erq->length = len;
> > 
> > Maybe you could use max here?
> 
> Initially Rebecca did use max() but I NAKed it.  It's really not less
> readable.  Better to handle the error explicitly.  Keep the error path
> indented two tabs.  Separate from the success path.

A comment would be useful as it's not obvious it's an 'error' path.
One has to read all 3 get_key functions to determine that.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  6:14       ` Joe Perches
@ 2022-04-08  6:31         ` Dan Carpenter
  2022-04-08  7:19           ` Joe Perches
  0 siblings, 1 reply; 12+ messages in thread
From: Dan Carpenter @ 2022-04-08  6:31 UTC (permalink / raw)
  To: Joe Perches
  Cc: Julia Lawall, Rebecca Mckeever, outreachy, Greg Kroah-Hartman,
	linux-staging, linux-kernel

On Thu, Apr 07, 2022 at 11:14:51PM -0700, Joe Perches wrote:
> On Fri, 2022-04-08 at 08:57 +0300, Dan Carpenter wrote:
> > On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> > > On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> > > 
> > > > Replace ternary statement with an if statement followed by an assignment
> > > > to increase readability and make error handling more obvious.
> > > > Found with minmax coccinelle script.
> []
> > > > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> []
> > > > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> > > >  		return 0;
> > > >  	}
> > > >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > > > -	erq->length = (len >= 0 ? len : 0);
> > > > +	if (len < 0)
> > > > +		len = 0;
> > > > +	erq->length = len;
> > > 
> > > Maybe you could use max here?
> > 
> > Initially Rebecca did use max() but I NAKed it.  It's really not less
> > readable.  Better to handle the error explicitly.  Keep the error path
> > indented two tabs.  Separate from the success path.
> 
> A comment would be useful as it's not obvious it's an 'error' path.
> One has to read all 3 get_key functions to determine that.
> 

I'm so confused.  Negative error codes are the common case in the
kernel.  We don't need to comment it.

Obviously in an ideal world the get_key() functions would return -EINVAL
instead of -1...

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements
  2022-04-08  1:12 [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Rebecca Mckeever
  2022-04-08  1:12 ` [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment Rebecca Mckeever
  2022-04-08  1:12 ` [PATCH v2 2/2] staging: rtl8192u: use min_t/max_t macros instead of if else Rebecca Mckeever
@ 2022-04-08  6:39 ` Dan Carpenter
  2 siblings, 0 replies; 12+ messages in thread
From: Dan Carpenter @ 2022-04-08  6:39 UTC (permalink / raw)
  To: Rebecca Mckeever
  Cc: outreachy, Greg Kroah-Hartman, linux-staging, linux-kernel

On Thu, Apr 07, 2022 at 08:12:49PM -0500, Rebecca Mckeever wrote:
> These patches replace ternary and if else statements with
> more readable statements. Found with minmax coccinelle script.
> 
> ---
> v1 -> v2:
> * Patch 1: "staging: rtl8192u: replace ternary statement with if and
> * assignment"
>   * replaced max macro with an if statement followed by an assignment
> 
> * Patch 2: "staging: rtl8192u: use min_t/max_t macros instead of if
> * else"
>   * changed the type argument in min_t and max_t from u8 to u32
> ---

Looks great.  Thanks!

Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  6:31         ` Dan Carpenter
@ 2022-04-08  7:19           ` Joe Perches
  2022-04-08  8:35             ` Dan Carpenter
  0 siblings, 1 reply; 12+ messages in thread
From: Joe Perches @ 2022-04-08  7:19 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Julia Lawall, Rebecca Mckeever, outreachy, Greg Kroah-Hartman,
	linux-staging, linux-kernel

On Fri, 2022-04-08 at 09:31 +0300, Dan Carpenter wrote:
> On Thu, Apr 07, 2022 at 11:14:51PM -0700, Joe Perches wrote:
> > On Fri, 2022-04-08 at 08:57 +0300, Dan Carpenter wrote:
> > > On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> > > > On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> > > > 
> > > > > Replace ternary statement with an if statement followed by an assignment
> > > > > to increase readability and make error handling more obvious.
> > > > > Found with minmax coccinelle script.
> > []
> > > > > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > []
> > > > > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> > > > >  		return 0;
> > > > >  	}
> > > > >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > > > > -	erq->length = (len >= 0 ? len : 0);
> > > > > +	if (len < 0)
> > > > > +		len = 0;
> > > > > +	erq->length = len;
> > > > 
> > > > Maybe you could use max here?
> > > 
> > > Initially Rebecca did use max() but I NAKed it.  It's really not less
> > > readable.  Better to handle the error explicitly.  Keep the error path
> > > indented two tabs.  Separate from the success path.
> > 
> > A comment would be useful as it's not obvious it's an 'error' path.
> > One has to read all 3 get_key functions to determine that.
> > 
> 
> I'm so confused.  Negative error codes are the common case in the
> kernel.  We don't need to comment it.

If it was an error, it would handle it as an error not set
len to 0 and continue. That's why IMO a comment is useful.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  7:19           ` Joe Perches
@ 2022-04-08  8:35             ` Dan Carpenter
  0 siblings, 0 replies; 12+ messages in thread
From: Dan Carpenter @ 2022-04-08  8:35 UTC (permalink / raw)
  To: Joe Perches
  Cc: Julia Lawall, Rebecca Mckeever, outreachy, Greg Kroah-Hartman,
	linux-staging, linux-kernel

On Fri, Apr 08, 2022 at 12:19:01AM -0700, Joe Perches wrote:
> On Fri, 2022-04-08 at 09:31 +0300, Dan Carpenter wrote:
> > On Thu, Apr 07, 2022 at 11:14:51PM -0700, Joe Perches wrote:
> > > On Fri, 2022-04-08 at 08:57 +0300, Dan Carpenter wrote:
> > > > On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> > > > > On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> > > > > 
> > > > > > Replace ternary statement with an if statement followed by an assignment
> > > > > > to increase readability and make error handling more obvious.
> > > > > > Found with minmax coccinelle script.
> > > []
> > > > > > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > > []
> > > > > > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> > > > > >  		return 0;
> > > > > >  	}
> > > > > >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > > > > > -	erq->length = (len >= 0 ? len : 0);
> > > > > > +	if (len < 0)
> > > > > > +		len = 0;
> > > > > > +	erq->length = len;
> > > > > 
> > > > > Maybe you could use max here?
> > > > 
> > > > Initially Rebecca did use max() but I NAKed it.  It's really not less
> > > > readable.  Better to handle the error explicitly.  Keep the error path
> > > > indented two tabs.  Separate from the success path.
> > > 
> > > A comment would be useful as it's not obvious it's an 'error' path.
> > > One has to read all 3 get_key functions to determine that.
> > > 
> > 
> > I'm so confused.  Negative error codes are the common case in the
> > kernel.  We don't need to comment it.
> 
> If it was an error, it would handle it as an error not set
> len to 0 and continue. That's why IMO a comment is useful.

Yeah.  You're probably right.  My understanding is that a zero length
key is a special case where it uses the default key?  Which I guess is
all zeroes here.

	if (len < 0) {
		/* No key data.  Use the default key. */
		len = 0;
	}
But when I look at this some more then there are three ->get_key()
callers in this file and only this one checks for -1 returns.  For the
one caller that does this:

	ext->key_len = crypt->ops->get_key(ext->key, SCM_KEY_LEN, NULL, crypt->priv);

then a negative return would result in a buffer overflow.

So another option would be to just return 0 instead of -1 from the
get_key() functions.

File | Pointer | Function | Static
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c | (struct ieee80211_crypto_ops)->get_key | ieee80211_tkip_get_key | 1
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_wep.c | (struct ieee80211_crypto_ops)->get_key | prism2_wep_get_key | 1
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | (struct ieee80211_crypto_ops)->get_key | ieee80211_ccmp_get_key | 1

Changing it to return zero would leave ieee80211_wx_get_encode() behavior
as-is.  It would fix a buffer overflow in ieee80211_wx_get_encode_ext().
It is a behavior change in ieee80211_wx_set_encode() and I think that's
a bug fix as well.

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment
  2022-04-08  5:57     ` Dan Carpenter
  2022-04-08  6:14       ` Joe Perches
@ 2022-04-08  8:50       ` Julia Lawall
  1 sibling, 0 replies; 12+ messages in thread
From: Julia Lawall @ 2022-04-08  8:50 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Rebecca Mckeever, outreachy, Greg Kroah-Hartman, linux-staging,
	linux-kernel



On Fri, 8 Apr 2022, Dan Carpenter wrote:

> On Fri, Apr 08, 2022 at 06:15:14AM +0200, Julia Lawall wrote:
> > On Thu, 7 Apr 2022, Rebecca Mckeever wrote:
> >
> > > Replace ternary statement with an if statement followed by an assignment
> > > to increase readability and make error handling more obvious.
> > > Found with minmax coccinelle script.
> > >
> > > Signed-off-by: Rebecca Mckeever <remckee0@gmail.com>
> > > ---
> > >  drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > > index 78cc8f357bbc..9885917b9199 100644
> > > --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > > +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c
> > > @@ -470,7 +470,9 @@ int ieee80211_wx_get_encode(struct ieee80211_device *ieee,
> > >  		return 0;
> > >  	}
> > >  	len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
> > > -	erq->length = (len >= 0 ? len : 0);
> > > +	if (len < 0)
> > > +		len = 0;
> > > +	erq->length = len;
> >
> > Maybe you could use max here?
>
> Initially Rebecca did use max() but I NAKed it.  It's really not less
> readable.  Better to handle the error explicitly.  Keep the error path
> indented two tabs.  Separate from the success path.

OK.  I have a hard time seeing that as an error path, though, with no
return or goto.  I guess it's error and recover.  OK either way.

julia

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-04-08  8:51 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-08  1:12 [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Rebecca Mckeever
2022-04-08  1:12 ` [PATCH v2 1/2] staging: rtl8192u: replace ternary statement with if and assignment Rebecca Mckeever
2022-04-08  4:15   ` Julia Lawall
2022-04-08  5:09     ` Greg Kroah-Hartman
2022-04-08  5:57     ` Dan Carpenter
2022-04-08  6:14       ` Joe Perches
2022-04-08  6:31         ` Dan Carpenter
2022-04-08  7:19           ` Joe Perches
2022-04-08  8:35             ` Dan Carpenter
2022-04-08  8:50       ` Julia Lawall
2022-04-08  1:12 ` [PATCH v2 2/2] staging: rtl8192u: use min_t/max_t macros instead of if else Rebecca Mckeever
2022-04-08  6:39 ` [PATCH v2 0/2] staging: rtl8192u: cleanup of ternary and if else statements Dan Carpenter

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.