Commit f94cfe6a authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

only cleanup ctx if we need to, save ctx flags when we do

parent 7951c269
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -115,10 +115,14 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *imp
		/* Ensure a context left lying around from last time is cleared
		 * (the previous check attempted to avoid this if the same
		 * ENGINE and EVP_CIPHER could be used). */
		if (ctx->cipher)
			{
			unsigned long flags = ctx->flags;
			EVP_CIPHER_CTX_cleanup(ctx);

		/* Restore encrypt field: it is zeroed by cleanup */
			/* Restore encrypt and flags */
			ctx->encrypt = enc;
			ctx->flags = flags;
			}
#ifndef OPENSSL_NO_ENGINE
		if(impl)
			{