diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/libssl/ssl_tlsext.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c index 2214a61ed3..35c764f646 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.34 2019/01/23 18:39:28 beck Exp $ */ | 1 | /* $OpenBSD: ssl_tlsext.c,v 1.35 2019/01/24 01:50:41 beck 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> |
@@ -1675,11 +1675,12 @@ tlsext_parse(SSL *s, CBS *cbs, int *alert, int is_server, uint16_t msg_type) | |||
1675 | struct tls_extension_funcs *ext; | 1675 | struct tls_extension_funcs *ext; |
1676 | struct tls_extension *tlsext; | 1676 | struct tls_extension *tlsext; |
1677 | CBS extensions, extension_data; | 1677 | CBS extensions, extension_data; |
1678 | uint32_t extensions_seen = 0; | ||
1679 | uint16_t type; | 1678 | uint16_t type; |
1680 | size_t idx; | 1679 | size_t idx; |
1681 | uint16_t version; | 1680 | uint16_t version; |
1682 | 1681 | ||
1682 | S3I(s)->hs.extensions_seen = 0; | ||
1683 | |||
1683 | if (is_server) | 1684 | if (is_server) |
1684 | version = s->version; | 1685 | version = s->version; |
1685 | else | 1686 | else |
@@ -1718,9 +1719,9 @@ tlsext_parse(SSL *s, CBS *cbs, int *alert, int is_server, uint16_t msg_type) | |||
1718 | } | 1719 | } |
1719 | 1720 | ||
1720 | /* Check for duplicate known extensions. */ | 1721 | /* Check for duplicate known extensions. */ |
1721 | if ((extensions_seen & (1 << idx)) != 0) | 1722 | if ((S3I(s)->hs.extensions_seen & (1 << idx)) != 0) |
1722 | return 0; | 1723 | return 0; |
1723 | extensions_seen |= (1 << idx); | 1724 | S3I(s)->hs.extensions_seen |= (1 << idx); |
1724 | 1725 | ||
1725 | ext = tlsext_funcs(tlsext, is_server); | 1726 | ext = tlsext_funcs(tlsext, is_server); |
1726 | if (!ext->parse(s, &extension_data, alert)) | 1727 | if (!ext->parse(s, &extension_data, alert)) |