diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 08f2f74097..c6a01faa83 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.297 2022/07/20 13:57:49 tb Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.298 2022/07/20 14:08:49 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -162,6 +162,7 @@ | |||
162 | #include "dtls_locl.h" | 162 | #include "dtls_locl.h" |
163 | #include "ssl_locl.h" | 163 | #include "ssl_locl.h" |
164 | #include "ssl_sigalgs.h" | 164 | #include "ssl_sigalgs.h" |
165 | #include "ssl_tlsext.h" | ||
165 | 166 | ||
166 | const char *SSL_version_str = OPENSSL_VERSION_TEXT; | 167 | const char *SSL_version_str = OPENSSL_VERSION_TEXT; |
167 | 168 | ||
@@ -1771,6 +1772,11 @@ SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, | |||
1771 | 1772 | ||
1772 | CBS_init(&cbs, protos, protos_len); | 1773 | CBS_init(&cbs, protos, protos_len); |
1773 | 1774 | ||
1775 | if (protos_len > 0) { | ||
1776 | if (!tlsext_alpn_check_format(&cbs)) | ||
1777 | goto err; | ||
1778 | } | ||
1779 | |||
1774 | if (!CBS_stow(&cbs, &ctx->internal->alpn_client_proto_list, | 1780 | if (!CBS_stow(&cbs, &ctx->internal->alpn_client_proto_list, |
1775 | &ctx->internal->alpn_client_proto_list_len)) | 1781 | &ctx->internal->alpn_client_proto_list_len)) |
1776 | goto err; | 1782 | goto err; |
@@ -1799,6 +1805,11 @@ SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, | |||
1799 | 1805 | ||
1800 | CBS_init(&cbs, protos, protos_len); | 1806 | CBS_init(&cbs, protos, protos_len); |
1801 | 1807 | ||
1808 | if (protos_len > 0) { | ||
1809 | if (!tlsext_alpn_check_format(&cbs)) | ||
1810 | goto err; | ||
1811 | } | ||
1812 | |||
1802 | if (!CBS_stow(&cbs, &ssl->internal->alpn_client_proto_list, | 1813 | if (!CBS_stow(&cbs, &ssl->internal->alpn_client_proto_list, |
1803 | &ssl->internal->alpn_client_proto_list_len)) | 1814 | &ssl->internal->alpn_client_proto_list_len)) |
1804 | goto err; | 1815 | goto err; |