Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2013-05-13 17:39:45 +0400
committerMaxim Dounin <mdounin@mdounin.ru>2013-05-13 17:39:45 +0400
commit885861b6836e43ad7755bb6533105db9d0769e32 (patch)
tree94e843c684c39c73b0b405a7db0f7d369d53c0d0 /src/http/ngx_http_request.c
parentdcdf9eed8d7f8f3021a8edab9716b3222b7597b5 (diff)
Fixed lingering_time check.
There are two significant changes in this patch: 1) The <= 0 comparison is done with a signed type. This fixes the case of ngx_time() being larger than r->lingering_time. 2) Calculation of r->lingering_time - ngx_time() is now always done in the ngx_msec_t type. This ensures the calculation is correct even if time_t is unsigned and differs in size from ngx_msec_t. Thanks to Lanshun Zhou.
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r--src/http/ngx_http_request.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index c8c5d153f..64f31b2c3 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -3166,8 +3166,8 @@ ngx_http_lingering_close_handler(ngx_event_t *rev)
return;
}
- timer = (ngx_msec_t) (r->lingering_time - ngx_time());
- if (timer <= 0) {
+ timer = (ngx_msec_t) r->lingering_time - (ngx_msec_t) ngx_time();
+ if ((ngx_msec_int_t) timer <= 0) {
ngx_http_close_request(r, 0);
return;
}