diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c index ce300440a89cda699b47d263bb9952946542ae92..3501066b077f31654bcf91e57c60a4a61c997404 100644 --- a/crypto/evp/e_aes.c +++ b/crypto/evp/e_aes.c @@ -2097,6 +2097,8 @@ static int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, { EVP_AES_WRAP_CTX *wctx = ctx->cipher_data; size_t rv; + if (!in) + return 0; if (inlen % 8) return -1; if (ctx->encrypt && inlen < 8) @@ -2110,8 +2112,6 @@ static int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, else return inlen - 8; } - if (!in) - return 0; if (ctx->encrypt) rv = CRYPTO_128_wrap(&wctx->ks.ks, wctx->iv, out, in, inlen, (block128_f)AES_encrypt);