diff options
| -rw-r--r-- | src/lib/libssl/ssl_tlsext.c | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c index d802a6e135..ab6450deab 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.125 2022/07/20 15:16:06 tb Exp $ */ | 1 | /* $OpenBSD: ssl_tlsext.c,v 1.126 2022/07/22 13:10:31 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> |
| @@ -93,8 +93,6 @@ tlsext_alpn_server_parse(SSL *s, uint16_t msg_types, CBS *cbs, int *alert) | |||
| 93 | 93 | ||
| 94 | if (!CBS_get_u16_length_prefixed(cbs, &alpn)) | 94 | if (!CBS_get_u16_length_prefixed(cbs, &alpn)) |
| 95 | goto err; | 95 | goto err; |
| 96 | if (CBS_len(cbs) != 0) | ||
| 97 | goto err; | ||
| 98 | 96 | ||
| 99 | if (!tlsext_alpn_check_format(&alpn)) | 97 | if (!tlsext_alpn_check_format(&alpn)) |
| 100 | goto err; | 98 | goto err; |
| @@ -179,8 +177,6 @@ tlsext_alpn_client_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 179 | 177 | ||
| 180 | if (!CBS_get_u16_length_prefixed(cbs, &list)) | 178 | if (!CBS_get_u16_length_prefixed(cbs, &list)) |
| 181 | goto err; | 179 | goto err; |
| 182 | if (CBS_len(cbs) != 0) | ||
| 183 | goto err; | ||
| 184 | 180 | ||
| 185 | if (!CBS_get_u8_length_prefixed(&list, &proto)) | 181 | if (!CBS_get_u8_length_prefixed(&list, &proto)) |
| 186 | goto err; | 182 | goto err; |
| @@ -251,8 +247,6 @@ tlsext_supportedgroups_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, | |||
| 251 | 247 | ||
| 252 | if (!CBS_get_u16_length_prefixed(cbs, &grouplist)) | 248 | if (!CBS_get_u16_length_prefixed(cbs, &grouplist)) |
| 253 | goto err; | 249 | goto err; |
| 254 | if (CBS_len(cbs) != 0) | ||
| 255 | goto err; | ||
| 256 | 250 | ||
| 257 | groups_len = CBS_len(&grouplist); | 251 | groups_len = CBS_len(&grouplist); |
| 258 | if (groups_len == 0 || groups_len % 2 != 0) | 252 | if (groups_len == 0 || groups_len % 2 != 0) |
| @@ -377,8 +371,6 @@ tlsext_ecpf_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 377 | return 0; | 371 | return 0; |
| 378 | if (CBS_len(&ecpf) == 0) | 372 | if (CBS_len(&ecpf) == 0) |
| 379 | return 0; | 373 | return 0; |
| 380 | if (CBS_len(cbs) != 0) | ||
| 381 | return 0; | ||
| 382 | 374 | ||
| 383 | /* Must contain uncompressed (0) - RFC 8422, section 5.1.2. */ | 375 | /* Must contain uncompressed (0) - RFC 8422, section 5.1.2. */ |
| 384 | if (!CBS_contains_zero_byte(&ecpf)) { | 376 | if (!CBS_contains_zero_byte(&ecpf)) { |
| @@ -466,8 +458,6 @@ tlsext_ri_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 466 | 458 | ||
| 467 | if (!CBS_get_u8_length_prefixed(cbs, &reneg)) | 459 | if (!CBS_get_u8_length_prefixed(cbs, &reneg)) |
| 468 | goto err; | 460 | goto err; |
| 469 | if (CBS_len(cbs) != 0) | ||
| 470 | goto err; | ||
| 471 | 461 | ||
| 472 | if (!CBS_mem_equal(&reneg, s->s3->previous_client_finished, | 462 | if (!CBS_mem_equal(&reneg, s->s3->previous_client_finished, |
| 473 | s->s3->previous_client_finished_len)) { | 463 | s->s3->previous_client_finished_len)) { |
| @@ -540,8 +530,6 @@ tlsext_ri_client_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 540 | goto err; | 530 | goto err; |
| 541 | if (CBS_len(&reneg) != 0) | 531 | if (CBS_len(&reneg) != 0) |
| 542 | goto err; | 532 | goto err; |
| 543 | if (CBS_len(cbs) != 0) | ||
| 544 | goto err; | ||
| 545 | 533 | ||
| 546 | if (!CBS_mem_equal(&prev_client, s->s3->previous_client_finished, | 534 | if (!CBS_mem_equal(&prev_client, s->s3->previous_client_finished, |
| 547 | s->s3->previous_client_finished_len)) { | 535 | s->s3->previous_client_finished_len)) { |
| @@ -833,8 +821,6 @@ tlsext_sni_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 833 | *alert = SSL_AD_ILLEGAL_PARAMETER; | 821 | *alert = SSL_AD_ILLEGAL_PARAMETER; |
| 834 | goto err; | 822 | goto err; |
| 835 | } | 823 | } |
| 836 | if (CBS_len(cbs) != 0) | ||
| 837 | goto err; | ||
| 838 | 824 | ||
| 839 | return 1; | 825 | return 1; |
| 840 | 826 | ||
| @@ -1014,10 +1000,6 @@ tlsext_ocsp_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1014 | goto err; | 1000 | goto err; |
| 1015 | } | 1001 | } |
| 1016 | 1002 | ||
| 1017 | /* should be nothing left */ | ||
| 1018 | if (CBS_len(cbs) > 0) | ||
| 1019 | goto err; | ||
| 1020 | |||
| 1021 | ret = 1; | 1003 | ret = 1; |
| 1022 | err: | 1004 | err: |
| 1023 | if (ret == 0) | 1005 | if (ret == 0) |
| @@ -1324,8 +1306,6 @@ tlsext_srtp_server_parse(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1324 | *alert = SSL_AD_DECODE_ERROR; | 1306 | *alert = SSL_AD_DECODE_ERROR; |
| 1325 | goto done; | 1307 | goto done; |
| 1326 | } | 1308 | } |
| 1327 | if (CBS_len(cbs) != 0) | ||
| 1328 | goto err; | ||
| 1329 | 1309 | ||
| 1330 | /* | 1310 | /* |
| 1331 | * Per RFC 5764 section 4.1.1 | 1311 | * Per RFC 5764 section 4.1.1 |
