aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2010-03-30 14:15:25 +0000
committerIgor Sysoev <igor@sysoev.ru>2010-03-30 14:15:25 +0000
commitd08b65ca61e87d9bf4290cd5d8725816d085708e (patch)
tree947c984ae072315f4664f1d8890aa98917d05ca3 /src
parent86f791e09092b52063cc42ce9ca4e5304d5fba49 (diff)
downloadnginx-d08b65ca61e87d9bf4290cd5d8725816d085708e.tar.gz
nginx-d08b65ca61e87d9bf4290cd5d8725816d085708e.zip
do not set file time in ngx_copy_file() if the time is -1,
this fixes an issue when file is moved across devices
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_file.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index 6844849ad..b5160f3ea 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -762,10 +762,12 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
size -= n;
}
- if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) {
- ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
- ngx_set_file_time_n " \"%s\" failed", to);
- goto failed;
+ if (cf->time != -1) {
+ if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) {
+ ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
+ ngx_set_file_time_n " \"%s\" failed", to);
+ goto failed;
+ }
}
rc = NGX_OK;