Commit 9eba5614 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Minor compatibility fixes.

PR: 2790
Submitted by: Alexei Khlebnikov
parent 3b1fb1a0
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -521,40 +521,40 @@ void BIO_free_all(BIO *bio)

BIO *BIO_dup_chain(BIO *in)
	{
	BIO *ret=NULL,*eoc=NULL,*bio,*new;
	BIO *ret=NULL,*eoc=NULL,*bio,*new_bio;

	for (bio=in; bio != NULL; bio=bio->next_bio)
		{
		if ((new=BIO_new(bio->method)) == NULL) goto err;
		new->callback=bio->callback;
		new->cb_arg=bio->cb_arg;
		new->init=bio->init;
		new->shutdown=bio->shutdown;
		new->flags=bio->flags;
		if ((new_bio=BIO_new(bio->method)) == NULL) goto err;
		new_bio->callback=bio->callback;
		new_bio->cb_arg=bio->cb_arg;
		new_bio->init=bio->init;
		new_bio->shutdown=bio->shutdown;
		new_bio->flags=bio->flags;

		/* This will let SSL_s_sock() work with stdin/stdout */
		new->num=bio->num;
		new_bio->num=bio->num;

		if (!BIO_dup_state(bio,(char *)new))
		if (!BIO_dup_state(bio,(char *)new_bio))
			{
			BIO_free(new);
			BIO_free(new_bio);
			goto err;
			}

		/* copy app data */
		if (!CRYPTO_dup_ex_data(CRYPTO_EX_INDEX_BIO, &new->ex_data,
		if (!CRYPTO_dup_ex_data(CRYPTO_EX_INDEX_BIO, &new_bio->ex_data,
					&bio->ex_data))
			goto err;

		if (ret == NULL)
			{
			eoc=new;
			eoc=new_bio;
			ret=eoc;
			}
		else
			{
			BIO_push(eoc,new);
			eoc=new;
			BIO_push(eoc,new_bio);
			eoc=new_bio;
			}
		}
	return(ret);
+1 −1
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ void X509_LOOKUP_free(X509_LOOKUP *ctx)
	if (ctx == NULL) return;
	if (	(ctx->method != NULL) &&
		(ctx->method->free != NULL))
		ctx->method->free(ctx);
		(*ctx->method->free)(ctx);
	OPENSSL_free(ctx);
	}