2018-01-01 10:33:24

by Joey Pabalinas

[permalink] [raw]
Subject: [PATCH] crypto: testmgr: change `guard` to unsigned char

When char is signed, storing the values 0xba (186) and 0xad (173) in the
`guard` array produces signed overflow. Change the type of `guard` to
unsigned char to remove undefined behavior.

Signed-off-by: Joey Pabalinas <[email protected]>
---
crypto/testmgr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 29d7020b8826faa3f0..e9a9faecf212bbd742 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -185,7 +185,7 @@ static int ahash_partial_update(struct ahash_request **preq,
char *state;
struct ahash_request *req;
int statesize, ret = -EINVAL;
- const char guard[] = { 0x00, 0xba, 0xad, 0x00 };
+ const unsigned char guard[] = { 0x00, 0xba, 0xad, 0x00 };

req = *preq;
statesize = crypto_ahash_statesize(
--
2.15.1


Attachments:
(No filename) (802.00 B)
signature.asc (833.00 B)
Download all attachments

2018-01-01 15:03:54

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] crypto: testmgr: change `guard` to unsigned char

On Mon, 2018-01-01 at 00:33 -1000, Joey Pabalinas wrote:
> When char is signed, storing the values 0xba (186) and 0xad (173) in the
> `guard` array produces signed overflow. Change the type of `guard` to
> unsigned char to remove undefined behavior.
[]
> diff --git a/crypto/testmgr.c b/crypto/testmgr.c
[]
> @@ -185,7 +185,7 @@ static int ahash_partial_update(struct ahash_request **preq,
> char *state;
> struct ahash_request *req;
> int statesize, ret = -EINVAL;
> - const char guard[] = { 0x00, 0xba, 0xad, 0x00 };
> + const unsigned char guard[] = { 0x00, 0xba, 0xad, 0x00 };

Might as well add static too

2018-01-01 20:36:36

by Joey Pabalinas

[permalink] [raw]
Subject: Re: [PATCH] crypto: testmgr: change `guard` to unsigned char

On Mon, Jan 01, 2018 at 07:03:46AM -0800, Joe Perches wrote:
>
> Might as well add static too
>

That's a good idea; I'll make a v2.

--
Joey Pabalinas


Attachments:
(No filename) (155.00 B)
signature.asc (833.00 B)
Download all attachments

2018-01-01 20:40:19

by Joey Pabalinas

[permalink] [raw]
Subject: [PATCH v2] crypto: testmgr: change `guard` to unsigned char

When char is signed, storing the values 0xba (186) and 0xad (173) in the
`guard` array produces signed overflow. Change the type of `guard` to
static unsigned char to correct undefined behavior and reduce function
stack usage.

Signed-off-by: Joey Pabalinas <[email protected]>
---
crypto/testmgr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index 29d7020b8826faa3f0..44a85d4b3561acbca6 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -185,7 +185,7 @@ static int ahash_partial_update(struct ahash_request **preq,
char *state;
struct ahash_request *req;
int statesize, ret = -EINVAL;
- const char guard[] = { 0x00, 0xba, 0xad, 0x00 };
+ static const unsigned char guard[] = { 0x00, 0xba, 0xad, 0x00 };

req = *preq;
statesize = crypto_ahash_statesize(
--
2.15.1


Attachments:
(No filename) (849.00 B)
signature.asc (833.00 B)
Download all attachments

2018-01-12 12:24:26

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH v2] crypto: testmgr: change `guard` to unsigned char

On Mon, Jan 01, 2018 at 10:40:14AM -1000, Joey Pabalinas wrote:
> When char is signed, storing the values 0xba (186) and 0xad (173) in the
> `guard` array produces signed overflow. Change the type of `guard` to
> static unsigned char to correct undefined behavior and reduce function
> stack usage.
>
> Signed-off-by: Joey Pabalinas <[email protected]>

Patch applied. Thanks.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2018-01-12 17:09:56

by Joey Pabalinas

[permalink] [raw]
Subject: Re: [PATCH v2] crypto: testmgr: change `guard` to unsigned char

On Fri, Jan 12, 2018 at 11:23:28PM +1100, Herbert Xu wrote:
>
> Patch applied. Thanks.

No problem, cheers.

--
Joey Pabalinas


Attachments:
(No filename) (130.00 B)
signature.asc (833.00 B)
Download all attachments