crypto: testmgr - fix length truncation with large page size
authorEric Biggers <ebiggers@google.com>
Mon, 20 May 2019 16:47:19 +0000 (09:47 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 30 May 2019 07:28:40 +0000 (15:28 +0800)
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: 40153b10d91c ("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>
crypto/testmgr.h

index b6daae1f6a1dfc418578b7f3eb124259df8fd8b9..2655f41d4d23a8f5a1fc9fda24f6db043bb8101d 100644 (file)
@@ -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;