diff options
Diffstat (limited to 'openssl/crypto/evp/bio_enc.c')
-rw-r--r-- | openssl/crypto/evp/bio_enc.c | 6 |
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); |