diff options
Diffstat (limited to 'src/lib/libcrypto/evp/e_rc4_hmac_md5.c')
| -rw-r--r-- | src/lib/libcrypto/evp/e_rc4_hmac_md5.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/libcrypto/evp/e_rc4_hmac_md5.c b/src/lib/libcrypto/evp/e_rc4_hmac_md5.c index a1fc0066e6..ac73361fa3 100644 --- a/src/lib/libcrypto/evp/e_rc4_hmac_md5.c +++ b/src/lib/libcrypto/evp/e_rc4_hmac_md5.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: e_rc4_hmac_md5.c,v 1.7 2016/11/05 10:47:57 miod Exp $ */ | 1 | /* $OpenBSD: e_rc4_hmac_md5.c,v 1.8 2017/01/31 13:17:21 inoguchi Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 2011 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2011 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -262,6 +262,8 @@ rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr) | |||
| 262 | unsigned int len = p[arg - 2] << 8 | p[arg - 1]; | 262 | unsigned int len = p[arg - 2] << 8 | p[arg - 1]; |
| 263 | 263 | ||
| 264 | if (!ctx->encrypt) { | 264 | if (!ctx->encrypt) { |
| 265 | if (len < MD5_DIGEST_LENGTH) | ||
| 266 | return -1; | ||
| 265 | len -= MD5_DIGEST_LENGTH; | 267 | len -= MD5_DIGEST_LENGTH; |
| 266 | p[arg - 2] = len >> 8; | 268 | p[arg - 2] = len >> 8; |
| 267 | p[arg - 1] = len; | 269 | p[arg - 1] = len; |
