projects
/
oweals
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR: 2223
[oweals/openssl.git]
/
ssl
/
bio_ssl.c
diff --git
a/ssl/bio_ssl.c
b/ssl/bio_ssl.c
index 467e1499470efe906900e23ad9f1396378eb6758..420deb7fc966b656651766aa984d5f3eaf369cc7 100644
(file)
--- a/
ssl/bio_ssl.c
+++ b/
ssl/bio_ssl.c
@@
-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->rbio=NULL;
break;
ssl->wbio=NULL;
ssl->rbio=NULL;
break;
@@
-452,7
+456,7
@@
static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
case BIO_CTRL_SET_CALLBACK:
{
#if 0 /* FIXME: Should this be used? -- Richard Levitte */
case BIO_CTRL_SET_CALLBACK:
{
#if 0 /* FIXME: Should this be used? -- Richard Levitte */
-
BIO
err(SSL_F_SSL_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
+
SSL
err(SSL_F_SSL_CTRL, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
ret = -1;
#else
ret=0;
ret = -1;
#else
ret=0;
@@
-461,9
+465,9
@@
static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
break;
case BIO_CTRL_GET_CALLBACK:
{
break;
case BIO_CTRL_GET_CALLBACK:
{
- void (**fptr)();
+ void (**fptr)(
const SSL *xssl,int type,int val
);
- fptr=(void (**)())ptr;
+ fptr=(void (**)(
const SSL *xssl,int type,int val
))ptr;
*fptr=SSL_get_info_callback(ssl);
}
break;
*fptr=SSL_get_info_callback(ssl);
}
break;
@@
-509,6
+513,7
@@
static int ssl_puts(BIO *bp, const char *str)
BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx)
{
BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx)
{
+#ifndef OPENSSL_NO_SOCK
BIO *ret=NULL,*buf=NULL,*ssl=NULL;
if ((buf=BIO_new(BIO_f_buffer())) == NULL)
BIO *ret=NULL,*buf=NULL,*ssl=NULL;
if ((buf=BIO_new(BIO_f_buffer())) == NULL)
@@
-521,6
+526,7
@@
BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx)
err:
if (buf != NULL) BIO_free(buf);
if (ssl != NULL) BIO_free(ssl);
err:
if (buf != NULL) BIO_free(buf);
if (ssl != NULL) BIO_free(ssl);
+#endif
return(NULL);
}
return(NULL);
}