Mercurial > hg > nginx-quic
view src/core/ngx_times.h @ 4610:778d2cc03e22
Fixed segmentation fault in ngx_resolver_create_name_query().
If name passed for resolution was { 0, NULL } (e.g. as a result
of name server returning CNAME pointing to ".") pointer wrapped
to (void *) -1 resulting in segmentation fault on an attempt to
dereference it.
Reported by Lanshun Zhou.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 26 Apr 2012 12:58:42 +0000 |
parents | d620f497c50f |
children | 777202558122 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_TIMES_H_INCLUDED_ #define _NGX_TIMES_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> typedef struct { time_t sec; ngx_uint_t msec; ngx_int_t gmtoff; } ngx_time_t; void ngx_time_init(void); void ngx_time_update(void); void ngx_time_sigsafe_update(void); u_char *ngx_http_time(u_char *buf, time_t t); u_char *ngx_http_cookie_time(u_char *buf, time_t t); void ngx_gmtime(time_t t, ngx_tm_t *tp); time_t ngx_next_time(time_t when); #define ngx_next_time_n "mktime()" extern volatile ngx_time_t *ngx_cached_time; #define ngx_time() ngx_cached_time->sec #define ngx_timeofday() (ngx_time_t *) ngx_cached_time extern volatile ngx_str_t ngx_cached_err_log_time; extern volatile ngx_str_t ngx_cached_http_time; extern volatile ngx_str_t ngx_cached_http_log_time; extern volatile ngx_str_t ngx_cached_http_log_iso8601; /* * milliseconds elapsed since epoch and truncated to ngx_msec_t, * used in event timers */ extern volatile ngx_msec_t ngx_current_msec; #endif /* _NGX_TIMES_H_INCLUDED_ */