From fac3b341dae56adccc1ffa7e8147b3694b209381 Mon Sep 17 00:00:00 2001 From: Valentin Bartenev Date: Fri, 14 Dec 2012 15:24:24 +0000 Subject: [PATCH] Fixed handling of ngx_write_fd() and ngx_read_fd() errors. The ngx_write_fd() and ngx_read_fd() functions return -1 in case of error, so the incorrect comparison with NGX_FILE_ERROR (which is 0 on windows platforms) might result in inaccurate error message in the error log. Also the ngx_errno global variable is being set only if the returned value is -1. --- src/core/ngx_conf_file.c | 2 +- src/core/ngx_cycle.c | 2 +- src/core/ngx_file.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c index 6da2dae80..12bb5cf8a 100644 --- a/src/core/ngx_conf_file.c +++ b/src/core/ngx_conf_file.c @@ -983,7 +983,7 @@ ngx_conf_flush_files(ngx_cycle_t *cycle) n = ngx_write_fd(file[i].fd, file[i].buffer, len); - if (n == NGX_FILE_ERROR) { + if (n == -1) { ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, ngx_write_fd_n " to \"%s\" failed", file[i].name.data); diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c index e8b155921..e5dad4607 100644 --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c @@ -1145,7 +1145,7 @@ ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user) n = ngx_write_fd(file[i].fd, file[i].buffer, len); - if (n == NGX_FILE_ERROR) { + if (n == -1) { ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, ngx_write_fd_n " to \"%s\" failed", file[i].name.data); diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c index f13fb4952..35f5f8dc3 100644 --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -732,14 +732,14 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) n = ngx_read_fd(fd, buf, len); - if (n == NGX_FILE_ERROR) { + if (n == -1) { ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, ngx_read_fd_n " \"%s\" failed", from); goto failed; } if ((size_t) n != len) { - ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, + ngx_log_error(NGX_LOG_ALERT, cf->log, 0, ngx_read_fd_n " has read only %z of %uz from %s", n, size, from); goto failed; @@ -747,14 +747,14 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf) n = ngx_write_fd(nfd, buf, len); - if (n == NGX_FILE_ERROR) { + if (n == -1) { ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, ngx_write_fd_n " \"%s\" failed", to); goto failed; } if ((size_t) n != len) { - ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, + ngx_log_error(NGX_LOG_ALERT, cf->log, 0, ngx_write_fd_n " has written only %z of %uz to %s", n, size, to); goto failed;