Mercurial > hg > nginx-quic
view src/http/modules/ngx_http_ssl_module.h @ 9049:a10210a45c8b
Core: stricter UTF-8 handling in ngx_utf8_decode().
An UTF-8 octet sequence cannot start with a 11111xxx byte (above 0xf8),
see https://datatracker.ietf.org/doc/html/rfc3629#section-3. Previously,
such bytes were accepted by ngx_utf8_decode() and misinterpreted as 11110xxx
bytes (as in a 4-byte sequence). While unlikely, this can potentially cause
issues.
Fix is to explicitly reject such bytes in ngx_utf8_decode().
author | Yugo Horie <u5.horie@gmail.com> |
---|---|
date | Thu, 23 Feb 2023 08:09:50 +0900 |
parents | 59e1c73fe02b |
children | 71b7453fb11f |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_HTTP_SSL_H_INCLUDED_ #define _NGX_HTTP_SSL_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_http.h> typedef struct { ngx_flag_t enable; ngx_ssl_t ssl; ngx_flag_t prefer_server_ciphers; ngx_flag_t early_data; ngx_flag_t reject_handshake; ngx_uint_t protocols; ngx_uint_t verify; ngx_uint_t verify_depth; size_t buffer_size; ssize_t builtin_session_cache; time_t session_timeout; ngx_array_t *certificates; ngx_array_t *certificate_keys; ngx_array_t *certificate_values; ngx_array_t *certificate_key_values; ngx_str_t dhparam; ngx_str_t ecdh_curve; ngx_str_t client_certificate; ngx_str_t trusted_certificate; ngx_str_t crl; ngx_str_t ciphers; ngx_array_t *passwords; ngx_array_t *conf_commands; ngx_shm_zone_t *shm_zone; ngx_flag_t session_tickets; ngx_array_t *session_ticket_keys; ngx_uint_t ocsp; ngx_str_t ocsp_responder; ngx_shm_zone_t *ocsp_cache_zone; ngx_flag_t stapling; ngx_flag_t stapling_verify; ngx_str_t stapling_file; ngx_str_t stapling_responder; u_char *file; ngx_uint_t line; } ngx_http_ssl_srv_conf_t; extern ngx_module_t ngx_http_ssl_module; #endif /* _NGX_HTTP_SSL_H_INCLUDED_ */