aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers
diff options
context:
space:
mode:
authorHarsh Jain <harsh@chelsio.com>2016-11-29 19:00:34 +0530
committerHerbert Xu <herbert@gondor.apana.org.au>2016-11-30 19:46:44 +0800
commit66bf093772040ae8b864d2cf953f2c73005f7815 (patch)
treef263ef833a13fb2976d9e91719c8c715b8d88846 /drivers
parentcrypto: drbg - prevent invalid SG mappings (diff)
downloadwireguard-linux-66bf093772040ae8b864d2cf953f2c73005f7815.tar.xz
wireguard-linux-66bf093772040ae8b864d2cf953f2c73005f7815.zip
crypto: chcr - Fix memory corruption
Fix memory corruption done by *((u32 *)dec_key + k) operation. Signed-off-by: Jitendra Lulla <JLULLA@chelsio.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/crypto/chelsio/chcr_algo.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/crypto/chelsio/chcr_algo.h b/drivers/crypto/chelsio/chcr_algo.h
index ec64fbcdeb49..199b0bb69b89 100644
--- a/drivers/crypto/chelsio/chcr_algo.h
+++ b/drivers/crypto/chelsio/chcr_algo.h
@@ -422,7 +422,7 @@ static inline void get_aes_decrypt_key(unsigned char *dec_key,
{
u32 temp;
u32 w_ring[MAX_NK];
- int i, j, k = 0;
+ int i, j, k;
u8 nr, nk;
switch (keylength) {
@@ -460,6 +460,7 @@ static inline void get_aes_decrypt_key(unsigned char *dec_key,
temp = w_ring[i % nk];
i++;
}
+ i--;
for (k = 0, j = i % nk; k < nk; k++) {
*((u32 *)dec_key + k) = htonl(w_ring[j]);
j--;