diff options
Diffstat (limited to 'src/lib/libcrypto/evp/bio_enc.c')
-rw-r--r-- | src/lib/libcrypto/evp/bio_enc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/libcrypto/evp/bio_enc.c b/src/lib/libcrypto/evp/bio_enc.c index f6ac94c6e1..b6efb5fbc4 100644 --- a/src/lib/libcrypto/evp/bio_enc.c +++ b/src/lib/libcrypto/evp/bio_enc.c | |||
@@ -361,8 +361,10 @@ again: | |||
361 | case BIO_CTRL_DUP: | 361 | case BIO_CTRL_DUP: |
362 | dbio=(BIO *)ptr; | 362 | dbio=(BIO *)ptr; |
363 | dctx=(BIO_ENC_CTX *)dbio->ptr; | 363 | dctx=(BIO_ENC_CTX *)dbio->ptr; |
364 | memcpy(&(dctx->cipher),&(ctx->cipher),sizeof(ctx->cipher)); | 364 | EVP_CIPHER_CTX_init(&dctx->cipher); |
365 | dbio->init=1; | 365 | ret = EVP_CIPHER_CTX_copy(&dctx->cipher,&ctx->cipher); |
366 | if (ret) | ||
367 | dbio->init=1; | ||
366 | break; | 368 | break; |
367 | default: | 369 | default: |
368 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); | 370 | ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |