Mercurial > hg > nginx
changeset 1986:7df9b30e2361
fix segfault when file is deleted and open_file_cache_errors is off
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 29 Apr 2008 14:39:15 +0000 |
parents | f711544d01b4 |
children | 0e628cf11c29 |
files | src/core/ngx_open_file_cache.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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 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 goto failed; } + ngx_queue_remove(&file->queue); + goto add_event; } @@ -212,6 +212,8 @@ ngx_open_cached_file(ngx_open_file_cache of->err = file->err; } + ngx_queue_remove(&file->queue); + goto found; } @@ -236,6 +238,8 @@ ngx_open_cached_file(ngx_open_file_cache goto failed; } + ngx_queue_remove(&file->queue); + if (of->is_dir) { if (file->is_dir || file->err) {