From: Igor Sysoev Date: Tue, 29 Apr 2008 14:39:15 +0000 (+0000) Subject: fix segfault when file is deleted and open_file_cache_errors is off X-Git-Tag: release-0.6.31~4 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=4de5124191641709499f0b3e8c32ef84b04d2ec8;p=nginx.git fix segfault when file is deleted and open_file_cache_errors is off --- diff --git a/src/core/ngx_open_file_cache.c b/src/core/ngx_open_file_cache.c index a1692f101..c217818f3 100644 --- a/src/core/ngx_open_file_cache.c +++ b/src/core/ngx_open_file_cache.c @@ -173,8 +173,6 @@ ngx_open_cached_file(ngx_open_file_cache_t *cache, ngx_str_t *name, file->uses++; - ngx_queue_remove(&file->queue); - if (file->fd == NGX_INVALID_FILE && file->err == 0 && !file->is_dir) { /* file was not used often enough to keep open */ @@ -185,6 +183,8 @@ ngx_open_cached_file(ngx_open_file_cache_t *cache, ngx_str_t *name, goto failed; } + ngx_queue_remove(&file->queue); + goto add_event; } @@ -212,6 +212,8 @@ ngx_open_cached_file(ngx_open_file_cache_t *cache, ngx_str_t *name, of->err = file->err; } + ngx_queue_remove(&file->queue); + goto found; } @@ -236,6 +238,8 @@ ngx_open_cached_file(ngx_open_file_cache_t *cache, ngx_str_t *name, goto failed; } + ngx_queue_remove(&file->queue); + if (of->is_dir) { if (file->is_dir || file->err) {