diff options
author | Eric Biggers <ebiggers@google.com> | 2019-05-20 09:47:19 -0700 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2019-05-30 15:28:40 +0800 |
commit | 8826fef094134e31942562c40979e9559d3e82ea (patch) | |
tree | 6b847b302cabe513e7ad95b6b2f1947f31a2a30a | |
parent | 384577283cad0bde8a83dcf11812e998980a8bbc (diff) | |
download | linux-crypto-8826fef094134e31942562c40979e9559d3e82ea.tar.gz linux-crypto-8826fef094134e31942562c40979e9559d3e82ea.zip |
crypto: testmgr - fix length truncation with large page size
On PowerPC with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y, there is sometimes
a crash in generate_random_aead_testvec(). The problem is that the
generated test vectors use data lengths of up to about 2 * PAGE_SIZE,
which is 128 KiB on PowerPC; however, the data length fields in the test
vectors are 'unsigned short', so the lengths get truncated. Fix this by
changing the relevant fields to 'unsigned int'.
Fixes: 4b772af62cb3 ("crypto: testmgr - fuzz AEADs against their generic implementation")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | crypto/testmgr.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index b6daae1f..2655f41d 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -43,7 +43,7 @@ struct hash_testvec { const char *key; const char *plaintext; const char *digest; - unsigned short psize; + unsigned int psize; unsigned short ksize; int setkey_error; int digest_error; @@ -74,7 +74,7 @@ struct cipher_testvec { const char *ctext; unsigned char wk; /* weak key flag */ unsigned short klen; - unsigned short len; + unsigned int len; bool fips_skip; bool generates_iv; int setkey_error; @@ -110,9 +110,9 @@ struct aead_testvec { unsigned char novrfy; unsigned char wk; unsigned char klen; - unsigned short plen; - unsigned short clen; - unsigned short alen; + unsigned int plen; + unsigned int clen; + unsigned int alen; int setkey_error; int setauthsize_error; int crypt_error; |