Fix BIO_CTRL_DUP for an SSL BIO

The variables in the BIO weren't being duplicated properly.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
This commit is contained in:
Matt Caswell 2016-04-26 17:52:21 +01:00
parent 97b04399b6
commit dbd5c34f18

View File

@ -424,10 +424,11 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
dbs = BIO_get_data(dbio);
SSL_free(dbs->ssl);
dbs->ssl = SSL_dup(ssl);
dbs->renegotiate_count = dbs->renegotiate_count;
dbs->byte_count = dbs->byte_count;
dbs->renegotiate_timeout = dbs->renegotiate_timeout;
dbs->last_time = dbs->last_time;
dbs->num_renegotiates = bs->num_renegotiates;
dbs->renegotiate_count = bs->renegotiate_count;
dbs->byte_count = bs->byte_count;
dbs->renegotiate_timeout = bs->renegotiate_timeout;
dbs->last_time = bs->last_time;
ret = (dbs->ssl != NULL);
break;
case BIO_C_GET_FD: