aboutsummaryrefslogtreecommitdiff
path: root/openssl/crypto/evp/bio_enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/crypto/evp/bio_enc.c')
-rw-r--r--openssl/crypto/evp/bio_enc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/openssl/crypto/evp/bio_enc.c b/openssl/crypto/evp/bio_enc.c
index f6ac94c6e..b6efb5fbc 100644
--- a/openssl/crypto/evp/bio_enc.c
+++ b/openssl/crypto/evp/bio_enc.c
@@ -361,8 +361,10 @@ again:
case BIO_CTRL_DUP:
dbio=(BIO *)ptr;
dctx=(BIO_ENC_CTX *)dbio->ptr;
- memcpy(&(dctx->cipher),&(ctx->cipher),sizeof(ctx->cipher));
- dbio->init=1;
+ EVP_CIPHER_CTX_init(&dctx->cipher);
+ ret = EVP_CIPHER_CTX_copy(&dctx->cipher,&ctx->cipher);
+ if (ret)
+ dbio->init=1;
break;
default:
ret=BIO_ctrl(b->next_bio,cmd,num,ptr);