A few small bugs with BIO popping.

PR: 364
This commit is contained in:
Richard Levitte 2003-01-30 21:49:16 +00:00
parent 88c1fec923
commit 8e1e238219
2 changed files with 6 additions and 1 deletions

View File

@ -395,6 +395,8 @@ BIO *BIO_pop(BIO *b)
if (b == NULL) return(NULL); if (b == NULL) return(NULL);
ret=b->next_bio; ret=b->next_bio;
BIO_ctrl(b,BIO_CTRL_POP,0,NULL);
if (b->prev_bio != NULL) if (b->prev_bio != NULL)
b->prev_bio->next_bio=b->next_bio; b->prev_bio->next_bio=b->next_bio;
if (b->next_bio != NULL) if (b->next_bio != NULL)
@ -402,7 +404,6 @@ BIO *BIO_pop(BIO *b)
b->next_bio=NULL; b->next_bio=NULL;
b->prev_bio=NULL; b->prev_bio=NULL;
BIO_ctrl(b,BIO_CTRL_POP,0,NULL);
return(ret); return(ret);
} }

View File

@ -403,6 +403,10 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
{ {
BIO_free_all(ssl->wbio); BIO_free_all(ssl->wbio);
} }
if (b->next_bio != NULL)
{
CRYPTO_add(&b->next_bio->references,1,CRYPTO_LOCK_BIO);
}
ssl->wbio=NULL; ssl->wbio=NULL;
ssl->rbio=NULL; ssl->rbio=NULL;
break; break;