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 a1692f1..c217818 100644 --- a/src/core/ngx_open_file_cache.c +++ b/src/core/ngx_open_file_cache.c
@@ -173,8 +173,6 @@ 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 @@ goto failed; } + ngx_queue_remove(&file->queue); + goto add_event; } @@ -212,6 +212,8 @@ of->err = file->err; } + ngx_queue_remove(&file->queue); + goto found; } @@ -236,6 +238,8 @@ goto failed; } + ngx_queue_remove(&file->queue); + if (of->is_dir) { if (file->is_dir || file->err) {