* [PATCH] crypto: fix comparison of unsigned expression warnings
@ 2019-09-30 8:49 Tian Tao
2019-09-30 14:17 ` Jonathan Cameron
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Tian Tao @ 2019-09-30 8:49 UTC (permalink / raw)
To: gilad, herbert, davem, linux-crypto; +Cc: linuxarm
This patch fixes the following warnings:
drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
compared with zero: seq_len > 0
Signed-off-by: Tian Tao <tiantao6@huawei.com>
---
drivers/crypto/ccree/cc_aead.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
index d3e8faa..b19291d 100644
--- a/drivers/crypto/ccree/cc_aead.c
+++ b/drivers/crypto/ccree/cc_aead.c
@@ -546,7 +546,7 @@ static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
struct cc_crypto_req cc_req = {};
struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ];
- unsigned int seq_len = 0;
+ int seq_len = 0;
struct device *dev = drvdata_to_dev(ctx->drvdata);
const u8 *enckey, *authkey;
int rc;
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] crypto: fix comparison of unsigned expression warnings
2019-09-30 8:49 [PATCH] crypto: fix comparison of unsigned expression warnings Tian Tao
@ 2019-09-30 14:17 ` Jonathan Cameron
2019-09-30 14:44 ` Jonathan Cameron
2019-10-02 10:00 ` Gilad Ben-Yossef
2019-10-17 13:45 ` Gilad Ben-Yossef
2 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2019-09-30 14:17 UTC (permalink / raw)
To: Tian Tao; +Cc: gilad, herbert, davem, linux-crypto, linuxarm
On Mon, 30 Sep 2019 16:49:21 +0800
Tian Tao <tiantao6@huawei.com> wrote:
> This patch fixes the following warnings:
> drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
> compared with zero: seq_len > 0
>
> Signed-off-by: Tian Tao <tiantao6@huawei.com>
Apologies, I should have looked into this in more depth when you asked
me about it earlier rather than assuming it was 'obviously' the right
fix.
It's more complex than I expected given the warning, which I note
is > 0 so it's not always true. I'm curious, which compiler generates
that warning?
So there are two ways seq_len can be set to non 0, hmac_setkey which returns a
signed int, but one that is reality is >= 0. The other is xcbc_setkey
which returns an unsigned int.
So I would suggest that in addition to what you have here, a change
to the return type of hmac_setkey in order to make it clear that
never returns a negative anyway.
Can also use if (seq_len)
rather than if (seq_len > 0)
Thanks,
Jonathan
> ---
> drivers/crypto/ccree/cc_aead.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
> index d3e8faa..b19291d 100644
> --- a/drivers/crypto/ccree/cc_aead.c
> +++ b/drivers/crypto/ccree/cc_aead.c
> @@ -546,7 +546,7 @@ static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
> struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
> struct cc_crypto_req cc_req = {};
> struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ];
> - unsigned int seq_len = 0;
> + int seq_len = 0;
> struct device *dev = drvdata_to_dev(ctx->drvdata);
> const u8 *enckey, *authkey;
> int rc;
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] crypto: fix comparison of unsigned expression warnings
2019-09-30 14:17 ` Jonathan Cameron
@ 2019-09-30 14:44 ` Jonathan Cameron
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2019-09-30 14:44 UTC (permalink / raw)
To: Tian Tao; +Cc: gilad, herbert, davem, linux-crypto, linuxarm
On Mon, 30 Sep 2019 15:17:02 +0100
Jonathan Cameron <jonathan.cameron@huawei.com> wrote:
> On Mon, 30 Sep 2019 16:49:21 +0800
> Tian Tao <tiantao6@huawei.com> wrote:
>
> > This patch fixes the following warnings:
> > drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
> > compared with zero: seq_len > 0
> >
> > Signed-off-by: Tian Tao <tiantao6@huawei.com>
>
> Apologies, I should have looked into this in more depth when you asked
> me about it earlier rather than assuming it was 'obviously' the right
> fix.
>
> It's more complex than I expected given the warning, which I note
> is > 0 so it's not always true. I'm curious, which compiler generates
> that warning?
>
> So there are two ways seq_len can be set to non 0, hmac_setkey which returns a
> signed int, but one that is reality is >= 0. The other is xcbc_setkey
> which returns an unsigned int.
>
> So I would suggest that in addition to what you have here, a change
> to the return type of hmac_setkey in order to make it clear that
> never returns a negative anyway.
Hmm. Perhaps I shouldn't review with jetlag... That should have said
that I think the variable should be left unsigned as reality is that
it is always >= 0.
>
> Can also use if (seq_len)
> rather than if (seq_len > 0)
>
> Thanks,
>
> Jonathan
>
>
>
> > ---
> > drivers/crypto/ccree/cc_aead.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
> > index d3e8faa..b19291d 100644
> > --- a/drivers/crypto/ccree/cc_aead.c
> > +++ b/drivers/crypto/ccree/cc_aead.c
> > @@ -546,7 +546,7 @@ static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
> > struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
> > struct cc_crypto_req cc_req = {};
> > struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ];
> > - unsigned int seq_len = 0;
> > + int seq_len = 0;
> > struct device *dev = drvdata_to_dev(ctx->drvdata);
> > const u8 *enckey, *authkey;
> > int rc;
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] crypto: fix comparison of unsigned expression warnings
2019-09-30 8:49 [PATCH] crypto: fix comparison of unsigned expression warnings Tian Tao
2019-09-30 14:17 ` Jonathan Cameron
@ 2019-10-02 10:00 ` Gilad Ben-Yossef
2019-10-08 1:00 ` 答复: " tiantao (H)
2019-10-17 13:45 ` Gilad Ben-Yossef
2 siblings, 1 reply; 6+ messages in thread
From: Gilad Ben-Yossef @ 2019-10-02 10:00 UTC (permalink / raw)
To: Tian Tao; +Cc: Herbert Xu, David Miller, Linux Crypto Mailing List, linuxarm
Hi,
On Mon, Sep 30, 2019 at 11:52 AM Tian Tao <tiantao6@huawei.com> wrote:
>
> This patch fixes the following warnings:
> drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
> compared with zero: seq_len > 0
>
Thanks for the report!
Can you please share which compiler/arch/config you use that produces
this warning?
I'm not seeing it on my end.
Many thanks,
Gilad
> Signed-off-by: Tian Tao <tiantao6@huawei.com>
> ---
> drivers/crypto/ccree/cc_aead.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
> index d3e8faa..b19291d 100644
> --- a/drivers/crypto/ccree/cc_aead.c
> +++ b/drivers/crypto/ccree/cc_aead.c
> @@ -546,7 +546,7 @@ static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
> struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
> struct cc_crypto_req cc_req = {};
> struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ];
> - unsigned int seq_len = 0;
> + int seq_len = 0;
> struct device *dev = drvdata_to_dev(ctx->drvdata);
> const u8 *enckey, *authkey;
> int rc;
> --
> 2.7.4
>
--
Gilad Ben-Yossef
Chief Coffee Drinker
values of β will give rise to dom!
^ permalink raw reply [flat|nested] 6+ messages in thread
* 答复: [PATCH] crypto: fix comparison of unsigned expression warnings
2019-10-02 10:00 ` Gilad Ben-Yossef
@ 2019-10-08 1:00 ` tiantao (H)
0 siblings, 0 replies; 6+ messages in thread
From: tiantao (H) @ 2019-10-08 1:00 UTC (permalink / raw)
To: Gilad Ben-Yossef
Cc: Herbert Xu, David Miller, Linux Crypto Mailing List, Linuxarm
Hi,
I found this warning using the command "make coccicheck COCCI=scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci MODE=patch"
Best
-----邮件原件-----
发件人: Gilad Ben-Yossef [mailto:gilad@benyossef.com]
发送时间: 2019年10月2日 18:00
收件人: tiantao (H) <tiantao6@huawei.com>
抄送: Herbert Xu <herbert@gondor.apana.org.au>; David Miller <davem@davemloft.net>; Linux Crypto Mailing List <linux-crypto@vger.kernel.org>; Linuxarm <linuxarm@huawei.com>
主题: Re: [PATCH] crypto: fix comparison of unsigned expression warnings
Hi,
On Mon, Sep 30, 2019 at 11:52 AM Tian Tao <tiantao6@huawei.com> wrote:
>
> This patch fixes the following warnings:
> drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
> compared with zero: seq_len > 0
>
Thanks for the report!
Can you please share which compiler/arch/config you use that produces this warning?
I'm not seeing it on my end.
Many thanks,
Gilad
> Signed-off-by: Tian Tao <tiantao6@huawei.com>
> ---
> drivers/crypto/ccree/cc_aead.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/ccree/cc_aead.c
> b/drivers/crypto/ccree/cc_aead.c index d3e8faa..b19291d 100644
> --- a/drivers/crypto/ccree/cc_aead.c
> +++ b/drivers/crypto/ccree/cc_aead.c
> @@ -546,7 +546,7 @@ static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
> struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
> struct cc_crypto_req cc_req = {};
> struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ];
> - unsigned int seq_len = 0;
> + int seq_len = 0;
> struct device *dev = drvdata_to_dev(ctx->drvdata);
> const u8 *enckey, *authkey;
> int rc;
> --
> 2.7.4
>
--
Gilad Ben-Yossef
Chief Coffee Drinker
values of β will give rise to dom!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] crypto: fix comparison of unsigned expression warnings
2019-09-30 8:49 [PATCH] crypto: fix comparison of unsigned expression warnings Tian Tao
2019-09-30 14:17 ` Jonathan Cameron
2019-10-02 10:00 ` Gilad Ben-Yossef
@ 2019-10-17 13:45 ` Gilad Ben-Yossef
2 siblings, 0 replies; 6+ messages in thread
From: Gilad Ben-Yossef @ 2019-10-17 13:45 UTC (permalink / raw)
To: Tian Tao; +Cc: Herbert Xu, David Miller, Linux Crypto Mailing List, linuxarm
On Mon, Sep 30, 2019 at 11:52 AM Tian Tao <tiantao6@huawei.com> wrote:
>
> This patch fixes the following warnings:
> drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
> compared with zero: seq_len > 0
Thank you very much for the patch. Please accept my apologies that it
took me some time to respond.
I'm sorry, but I don't think this is the right solution here:
seq_len here can never get a negative value so the warning is a false one.
Having said that, I suspect it would be better code to:
1. change hmac_setkey() return type to unsigned int as well, as it
doesn't ever return a negative number.
2. change the predicate in the if statement the warning mentions to
seq_len != 0.
That would be a clearer code and possibly will also silence the false warning
So NACK for this one but I would accept a patch doing he above if you send one.
Thanks again for taking the time to do this.
Gilad
>
> Signed-off-by: Tian Tao <tiantao6@huawei.com>
> ---
> drivers/crypto/ccree/cc_aead.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/ccree/cc_aead.c b/drivers/crypto/ccree/cc_aead.c
> index d3e8faa..b19291d 100644
> --- a/drivers/crypto/ccree/cc_aead.c
> +++ b/drivers/crypto/ccree/cc_aead.c
> @@ -546,7 +546,7 @@ static int cc_aead_setkey(struct crypto_aead *tfm, const u8 *key,
> struct cc_aead_ctx *ctx = crypto_aead_ctx(tfm);
> struct cc_crypto_req cc_req = {};
> struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ];
> - unsigned int seq_len = 0;
> + int seq_len = 0;
> struct device *dev = drvdata_to_dev(ctx->drvdata);
> const u8 *enckey, *authkey;
> int rc;
> --
> 2.7.4
>
--
Gilad Ben-Yossef
Chief Coffee Drinker
values of β will give rise to dom!
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-10-17 13:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-30 8:49 [PATCH] crypto: fix comparison of unsigned expression warnings Tian Tao
2019-09-30 14:17 ` Jonathan Cameron
2019-09-30 14:44 ` Jonathan Cameron
2019-10-02 10:00 ` Gilad Ben-Yossef
2019-10-08 1:00 ` 答复: " tiantao (H)
2019-10-17 13:45 ` Gilad Ben-Yossef
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).