summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2022-07-20 14:14:34 +0000
committertb <>2022-07-20 14:14:34 +0000
commit529c2c15bf79f417a18ff163b896a60ed9e4693c (patch)
treead5faa0f250c9f441a767235cc090c79992c9b8e /src
parent7dfe718e143629b53ed1b8654372f3a2be32d252 (diff)
downloadopenbsd-529c2c15bf79f417a18ff163b896a60ed9e4693c.tar.gz
openbsd-529c2c15bf79f417a18ff163b896a60ed9e4693c.tar.bz2
openbsd-529c2c15bf79f417a18ff163b896a60ed9e4693c.zip
Copy alpn_selected using CBS
ok jsing
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/ssl_tlsext.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c
index 781d40d03a..4ce6939c79 100644
--- a/src/lib/libssl/ssl_tlsext.c
+++ b/src/lib/libssl/ssl_tlsext.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.c,v 1.122 2022/07/20 13:35:05 tb Exp $ */ 1/* $OpenBSD: ssl_tlsext.c,v 1.123 2022/07/20 14:14:34 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -113,14 +113,15 @@ tlsext_alpn_server_parse(SSL *s, uint16_t msg_types, CBS *cbs, int *alert)
113 s->ctx->internal->alpn_select_cb_arg); 113 s->ctx->internal->alpn_select_cb_arg);
114 114
115 if (r == SSL_TLSEXT_ERR_OK) { 115 if (r == SSL_TLSEXT_ERR_OK) {
116 free(s->s3->alpn_selected); 116 CBS cbs;
117 if ((s->s3->alpn_selected = malloc(selected_len)) == NULL) { 117
118 s->s3->alpn_selected_len = 0; 118 CBS_init(&cbs, selected, selected_len);
119
120 if (!CBS_stow(&cbs, &s->s3->alpn_selected,
121 &s->s3->alpn_selected_len)) {
119 *alert = SSL_AD_INTERNAL_ERROR; 122 *alert = SSL_AD_INTERNAL_ERROR;
120 return 0; 123 return 0;
121 } 124 }
122 memcpy(s->s3->alpn_selected, selected, selected_len);
123 s->s3->alpn_selected_len = selected_len;
124 125
125 return 1; 126 return 1;
126 } 127 }