diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c index 5e41d85a6ab539729879cbde9b2174a2e92c47f2..2d328b4d36c4b997a3ab716f82006caca00f007f 100644 --- a/crypto/pem/pem_lib.c +++ b/crypto/pem/pem_lib.c @@ -480,8 +480,9 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, EVP_CIPHER_CTX_cleanup(&ctx); OPENSSL_cleanse((char *)buf,sizeof(buf)); OPENSSL_cleanse((char *)key,sizeof(key)); - j+=i; - if (!o) + if (o) + j+=i; + else { PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_DECRYPT); return(0);