aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@nginx.com>2020-07-21 20:34:29 +0300
committerRuslan Ermilov <ru@nginx.com>2020-07-21 20:34:29 +0300
commit80daef96f1e1de397b8bc455ac3a3fbc060607cf (patch)
tree10b500b00c8962f950a74a87513f47c9648c80c7 /src
parent5cef7de7a116bab3af9097dac5a22f7652be4273 (diff)
downloadnginx-80daef96f1e1de397b8bc455ac3a3fbc060607cf.tar.gz
nginx-80daef96f1e1de397b8bc455ac3a3fbc060607cf.zip
Core: close PID file when writing fails.
Reported by Jinhua Tan.
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_cycle.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index 764cf46ba..d7479fa41 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -1009,6 +1009,7 @@ ngx_int_t
ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log)
{
size_t len;
+ ngx_int_t rc;
ngx_uint_t create;
ngx_file_t file;
u_char pid[NGX_INT64_LEN + 2];
@@ -1033,11 +1034,13 @@ ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log)
return NGX_ERROR;
}
+ rc = NGX_OK;
+
if (!ngx_test_config) {
len = ngx_snprintf(pid, NGX_INT64_LEN + 2, "%P%N", ngx_pid) - pid;
if (ngx_write_file(&file, pid, len, 0) == NGX_ERROR) {
- return NGX_ERROR;
+ rc = NGX_ERROR;
}
}
@@ -1046,7 +1049,7 @@ ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log)
ngx_close_file_n " \"%s\" failed", file.name.data);
}
- return NGX_OK;
+ return rc;
}