comparison src/event/ngx_event_timer.c @ 670:ad45b044f1e5 NGINX_1_1_19

nginx 1.1.19 *) Security: specially crafted mp4 file might allow to overwrite memory locations in a worker process if the ngx_http_mp4_module was used, potentially resulting in arbitrary code execution (CVE-2012-2089). Thanks to Matthew Daley. *) Bugfix: nginx/Windows might be terminated abnormally. Thanks to Vincent Lee. *) Bugfix: nginx hogged CPU if all servers in an upstream were marked as "backup". *) Bugfix: the "allow" and "deny" directives might be inherited incorrectly if they were used with IPv6 addresses. *) Bugfix: the "modern_browser" and "ancient_browser" directives might be inherited incorrectly. *) Bugfix: timeouts might be handled incorrectly on Solaris/SPARC. *) Bugfix: in the ngx_http_mp4_module.
author Igor Sysoev <http://sysoev.ru>
date Thu, 12 Apr 2012 00:00:00 +0400
parents d0f7a625f27c
children
comparison
equal deleted inserted replaced
669:3f5d0be5ee74 670:ad45b044f1e5
65 65
66 node = ngx_rbtree_min(root, sentinel); 66 node = ngx_rbtree_min(root, sentinel);
67 67
68 ngx_mutex_unlock(ngx_event_timer_mutex); 68 ngx_mutex_unlock(ngx_event_timer_mutex);
69 69
70 timer = (ngx_msec_int_t) node->key - (ngx_msec_int_t) ngx_current_msec; 70 timer = (ngx_msec_int_t) (node->key - ngx_current_msec);
71 71
72 return (ngx_msec_t) (timer > 0 ? timer : 0); 72 return (ngx_msec_t) (timer > 0 ? timer : 0);
73 } 73 }
74 74
75 75
93 93
94 node = ngx_rbtree_min(root, sentinel); 94 node = ngx_rbtree_min(root, sentinel);
95 95
96 /* node->key <= ngx_current_time */ 96 /* node->key <= ngx_current_time */
97 97
98 if ((ngx_msec_int_t) node->key - (ngx_msec_int_t) ngx_current_msec <= 0) 98 if ((ngx_msec_int_t) (node->key - ngx_current_msec) <= 0) {
99 {
100 ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer)); 99 ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer));
101 100
102 #if (NGX_THREADS) 101 #if (NGX_THREADS)
103 102
104 if (ngx_threaded && ngx_trylock(ev->lock) == 0) { 103 if (ngx_threaded && ngx_trylock(ev->lock) == 0) {