Skip to content

Commit 5d59cf9

Browse files
committed
Fix quic_transport constructors/parsers
1 parent 5e5f91c commit 5d59cf9

File tree

2 files changed

+6
-28
lines changed

2 files changed

+6
-28
lines changed

ssl/statem/extensions_clnt.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,10 +1266,8 @@ EXT_RETURN tls_construct_ctos_quic_transport_params(SSL *s, WPACKET *pkt,
12661266
}
12671267

12681268
if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_quic_transport_parameters)
1269-
|| !WPACKET_start_sub_packet_u16(pkt)
1270-
|| !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params,
1271-
s->ext.quic_transport_params_len)
1272-
|| !WPACKET_close(pkt)) {
1269+
|| !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params,
1270+
s->ext.quic_transport_params_len)) {
12731271
SSLfatal(s, SSL_AD_INTERNAL_ERROR,
12741272
SSL_F_TLS_CONSTRUCT_CTOS_QUIC_TRANSPORT_PARAMS, ERR_R_INTERNAL_ERROR);
12751273
return EXT_RETURN_FAIL;
@@ -2069,20 +2067,11 @@ int tls_parse_stoc_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x,
20692067
int tls_parse_stoc_quic_transport_params(SSL *s, PACKET *pkt, unsigned int context,
20702068
X509 *x, size_t chainidx)
20712069
{
2072-
PACKET trans_param;
2073-
2074-
if (!PACKET_as_length_prefixed_2(pkt, &trans_param)
2075-
|| PACKET_remaining(&trans_param) == 0) {
2076-
SSLfatal(s, SSL_AD_DECODE_ERROR, SSL_F_TLS_PARSE_STOC_QUIC_TRANSPORT_PARAMS,
2077-
SSL_R_BAD_EXTENSION);
2078-
return 0;
2079-
}
2080-
20812070
OPENSSL_free(s->ext.peer_quic_transport_params);
20822071
s->ext.peer_quic_transport_params = NULL;
20832072
s->ext.peer_quic_transport_params_len = 0;
20842073

2085-
if (!PACKET_memdup(&trans_param,
2074+
if (!PACKET_memdup(pkt,
20862075
&s->ext.peer_quic_transport_params,
20872076
&s->ext.peer_quic_transport_params_len)) {
20882077
SSLfatal(s, SSL_AD_INTERNAL_ERROR,

ssl/statem/extensions_srvr.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,20 +1306,11 @@ int tls_parse_ctos_post_handshake_auth(SSL *s, PACKET *pkt, unsigned int context
13061306
int tls_parse_ctos_quic_transport_params(SSL *s, PACKET *pkt, unsigned int context,
13071307
X509 *x, size_t chainidx)
13081308
{
1309-
PACKET trans_param;
1310-
1311-
if (!PACKET_as_length_prefixed_2(pkt, &trans_param)
1312-
|| PACKET_remaining(&trans_param) == 0) {
1313-
SSLfatal(s, SSL_AD_DECODE_ERROR, SSL_F_TLS_PARSE_CTOS_QUIC_TRANSPORT_PARAMS,
1314-
SSL_R_BAD_EXTENSION);
1315-
return 0;
1316-
}
1317-
13181309
OPENSSL_free(s->ext.peer_quic_transport_params);
13191310
s->ext.peer_quic_transport_params = NULL;
13201311
s->ext.peer_quic_transport_params_len = 0;
13211312

1322-
if (!PACKET_memdup(&trans_param,
1313+
if (!PACKET_memdup(pkt,
13231314
&s->ext.peer_quic_transport_params,
13241315
&s->ext.peer_quic_transport_params_len)) {
13251316
SSLfatal(s, SSL_AD_INTERNAL_ERROR,
@@ -2003,10 +1994,8 @@ EXT_RETURN tls_construct_stoc_quic_transport_params(SSL *s, WPACKET *pkt,
20031994
}
20041995

20051996
if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_quic_transport_parameters)
2006-
|| !WPACKET_start_sub_packet_u16(pkt)
2007-
|| !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params,
2008-
s->ext.quic_transport_params_len)
2009-
|| !WPACKET_close(pkt)) {
1997+
|| !WPACKET_sub_memcpy_u16(pkt, s->ext.quic_transport_params,
1998+
s->ext.quic_transport_params_len)) {
20101999
SSLfatal(s, SSL_AD_INTERNAL_ERROR,
20112000
SSL_F_TLS_CONSTRUCT_STOC_QUIC_TRANSPORT_PARAMS, ERR_R_INTERNAL_ERROR);
20122001
return EXT_RETURN_FAIL;

0 commit comments

Comments
 (0)