summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2022-07-24 14:31:37 +0000
committerjsing <>2022-07-24 14:31:37 +0000
commit2d149b2866e29906b49da088ba99bba24275877c (patch)
tree4eaf6718069b46bdec46dc5db8514d4926036f9d /src
parentf7f7655b1951f8dd9a8166cb6203a780f911d0bc (diff)
downloadopenbsd-2d149b2866e29906b49da088ba99bba24275877c.tar.gz
openbsd-2d149b2866e29906b49da088ba99bba24275877c.tar.bz2
openbsd-2d149b2866e29906b49da088ba99bba24275877c.zip
Set NULL BIOs for QUIC.
When used with QUIC, the SSL BIOs are effectively unused, however we still currently expect them to exist for status (such as SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE). Set up NULL BIOs if QUIC is in use. ok tb@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/tls13_quic.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/libssl/tls13_quic.c b/src/lib/libssl/tls13_quic.c
index 3f814188a7..52e09f03eb 100644
--- a/src/lib/libssl/tls13_quic.c
+++ b/src/lib/libssl/tls13_quic.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_quic.c,v 1.1 2022/07/24 14:28:16 jsing Exp $ */ 1/* $OpenBSD: tls13_quic.c,v 1.2 2022/07/24 14:31:37 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -127,9 +127,22 @@ static const struct tls13_record_layer_callbacks quic_rl_callbacks = {
127int 127int
128tls13_quic_init(struct tls13_ctx *ctx) 128tls13_quic_init(struct tls13_ctx *ctx)
129{ 129{
130 BIO *bio;
131
130 tls13_record_layer_set_callbacks(ctx->rl, &quic_rl_callbacks, ctx); 132 tls13_record_layer_set_callbacks(ctx->rl, &quic_rl_callbacks, ctx);
131 133
132 ctx->middlebox_compat = 0; 134 ctx->middlebox_compat = 0;
133 135
136 /*
137 * QUIC does not use BIOs, however we currently expect a BIO to exist
138 * for status handling.
139 */
140 if ((bio = BIO_new(BIO_s_null())) == NULL)
141 return 0;
142
143 BIO_up_ref(bio);
144 SSL_set_bio(ctx->ssl, bio, bio);
145 bio = NULL;
146
134 return 1; 147 return 1;
135} 148}