mirror of https://github.com/openssl/openssl.git
				
				
				
			only cleanup ctx if we need to, save ctx flags when we do
This commit is contained in:
		
							parent
							
								
									7951c2699f
								
							
						
					
					
						commit
						f94cfe6a12
					
				|  | @ -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
 | 		/* Ensure a context left lying around from last time is cleared
 | ||||||
| 		 * (the previous check attempted to avoid this if the same | 		 * (the previous check attempted to avoid this if the same | ||||||
| 		 * ENGINE and EVP_CIPHER could be used). */ | 		 * ENGINE and EVP_CIPHER could be used). */ | ||||||
|  | 		if (ctx->cipher) | ||||||
|  | 			{ | ||||||
|  | 			unsigned long flags = ctx->flags; | ||||||
| 			EVP_CIPHER_CTX_cleanup(ctx); | 			EVP_CIPHER_CTX_cleanup(ctx); | ||||||
| 
 | 			/* Restore encrypt and flags */ | ||||||
| 		/* Restore encrypt field: it is zeroed by cleanup */ |  | ||||||
| 			ctx->encrypt = enc; | 			ctx->encrypt = enc; | ||||||
|  | 			ctx->flags = flags; | ||||||
|  | 			} | ||||||
| #ifndef OPENSSL_NO_ENGINE | #ifndef OPENSSL_NO_ENGINE | ||||||
| 		if(impl) | 		if(impl) | ||||||
| 			{ | 			{ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue