crypto/aesni_mb: fix out-of-bounds access
authorFan Zhang <roy.fan.zhang@intel.com>
Mon, 24 Jun 2019 15:40:52 +0000 (16:40 +0100)
committerAkhil Goyal <akhil.goyal@nxp.com>
Fri, 5 Jul 2019 13:28:14 +0000 (15:28 +0200)
This patch fixes the out-of-bounds coverity issue by adding
missed algorithms to the array.

Coverity issue: 337683
Fixes: c68d7aa354f6 ("crypto/aesni_mb: use architecture independent macros")
Cc: stable@dpdk.org
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
drivers/crypto/aesni_mb/rte_aesni_mb_pmd_private.h

index 4d43936..b794d4b 100644 (file)
@@ -33,6 +33,7 @@ int aesni_mb_logtype_driver;
 /* Maximum length for digest */
 #define DIGEST_LENGTH_MAX 64
 static const unsigned auth_blocksize[] = {
+               [NULL_HASH]     = 0,
                [MD5]           = 64,
                [SHA1]          = 64,
                [SHA_224]       = 64,
@@ -41,6 +42,13 @@ static const unsigned auth_blocksize[] = {
                [SHA_512]       = 128,
                [AES_XCBC]      = 16,
                [AES_CCM]       = 16,
+               [AES_CMAC]      = 16,
+               [AES_GMAC]      = 16,
+               [PLAIN_SHA1]    = 64,
+               [PLAIN_SHA_224] = 64,
+               [PLAIN_SHA_256] = 64,
+               [PLAIN_SHA_384] = 128,
+               [PLAIN_SHA_512] = 128
 };
 
 /**
@@ -65,7 +73,13 @@ static const unsigned auth_truncated_digest_byte_lengths[] = {
                [AES_XCBC]      = 12,
                [AES_CMAC]      = 12,
                [AES_CCM]       = 8,
-               [NULL_HASH]     = 0
+               [NULL_HASH]     = 0,
+               [AES_GMAC]      = 16,
+               [PLAIN_SHA1]    = 20,
+               [PLAIN_SHA_224] = 28,
+               [PLAIN_SHA_256] = 32,
+               [PLAIN_SHA_384] = 48,
+               [PLAIN_SHA_512] = 64
 };
 
 /**
@@ -90,6 +104,7 @@ static const unsigned auth_digest_byte_lengths[] = {
                [SHA_512]       = 64,
                [AES_XCBC]      = 16,
                [AES_CMAC]      = 16,
+               [AES_CCM]       = 16,
                [AES_GMAC]      = 12,
                [NULL_HASH]     = 0,
                [PLAIN_SHA1]    = 20,