mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
Fixed ngx_open_cached_file() error handling.
If of.err is 0, it means that there was a memory allocation error and no further logging and/or processing is needed. The of.failed string can be only accessed if of.err is not 0.
This commit is contained in:
parent
eb017e75cf
commit
9ad18e43ac
@ -217,13 +217,13 @@ ngx_http_index_handler(ngx_http_request_t *r)
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
{
|
||||
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, of.err,
|
||||
"%s \"%s\" failed", of.failed, path.data);
|
||||
|
||||
if (of.err == 0) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, of.err,
|
||||
"%s \"%s\" failed", of.failed, path.data);
|
||||
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
if (of.err == NGX_EMLINK
|
||||
|| of.err == NGX_ELOOP)
|
||||
|
@ -552,6 +552,11 @@ ngx_http_log_script_write(ngx_http_request_t *r, ngx_http_log_script_t *script,
|
||||
if (ngx_open_cached_file(llcf->open_file_cache, &log, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
{
|
||||
if (of.err == 0) {
|
||||
/* simulate successful logging */
|
||||
return len;
|
||||
}
|
||||
|
||||
ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno,
|
||||
"%s \"%s\" failed", of.failed, log.data);
|
||||
/* simulate successful logging */
|
||||
|
@ -1314,6 +1314,11 @@ ngx_http_core_try_files_phase(ngx_http_request_t *r,
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
{
|
||||
if (of.err == 0) {
|
||||
ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
if (of.err != NGX_ENOENT
|
||||
&& of.err != NGX_ENOTDIR
|
||||
&& of.err != NGX_ENAMETOOLONG)
|
||||
|
@ -1513,6 +1513,12 @@ ngx_http_script_file_code(ngx_http_script_engine_t *e)
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
{
|
||||
if (of.err == 0) {
|
||||
e->ip = ngx_http_script_exit;
|
||||
e->status = NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
if (of.err != NGX_ENOENT
|
||||
&& of.err != NGX_ENOTDIR
|
||||
&& of.err != NGX_ENAMETOOLONG)
|
||||
|
@ -443,6 +443,11 @@ ngx_stream_log_script_write(ngx_stream_session_t *s,
|
||||
s->connection->pool)
|
||||
!= NGX_OK)
|
||||
{
|
||||
if (of.err == 0) {
|
||||
/* simulate successful logging */
|
||||
return len;
|
||||
}
|
||||
|
||||
ngx_log_error(NGX_LOG_CRIT, s->connection->log, ngx_errno,
|
||||
"%s \"%s\" failed", of.failed, log.data);
|
||||
/* simulate successful logging */
|
||||
|
Loading…
Reference in New Issue
Block a user