Mercurial > hg > nginx-quic
view src/os/win32/ngx_time.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 | d620f497c50f |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_TIME_H_INCLUDED_ #define _NGX_TIME_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> typedef ngx_rbtree_key_t ngx_msec_t; typedef ngx_rbtree_key_int_t ngx_msec_int_t; typedef SYSTEMTIME ngx_tm_t; typedef FILETIME ngx_mtime_t; #define ngx_tm_sec wSecond #define ngx_tm_min wMinute #define ngx_tm_hour wHour #define ngx_tm_mday wDay #define ngx_tm_mon wMonth #define ngx_tm_year wYear #define ngx_tm_wday wDayOfWeek #define ngx_tm_sec_t u_short #define ngx_tm_min_t u_short #define ngx_tm_hour_t u_short #define ngx_tm_mday_t u_short #define ngx_tm_mon_t u_short #define ngx_tm_year_t u_short #define ngx_tm_wday_t u_short #define ngx_msleep Sleep #define NGX_HAVE_GETTIMEZONE 1 #define ngx_timezone_update() ngx_int_t ngx_gettimezone(void); void ngx_libc_localtime(time_t s, struct tm *tm); void ngx_libc_gmtime(time_t s, struct tm *tm); void ngx_gettimeofday(struct timeval *tp); #endif /* _NGX_TIME_H_INCLUDED_ */