comparison src/core/ngx_file.c @ 7328:3c357206a3b8

Dav: fixed ngx_copy_file() to truncate destination file. Previously, ngx_open_file(NGX_FILE_CREATE_OR_OPEN) was used, resulting in destination file being partially rewritten if exists. Notably, this affected WebDAV COPY command (ticket #1576).
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 01 Aug 2018 02:11:58 +0300
parents d48c8cdac201
children 63a76a594dd8
comparison
equal deleted inserted replaced
7327:f7e79596baf2 7328:3c357206a3b8
837 buf = ngx_alloc(len, cf->log); 837 buf = ngx_alloc(len, cf->log);
838 if (buf == NULL) { 838 if (buf == NULL) {
839 goto failed; 839 goto failed;
840 } 840 }
841 841
842 nfd = ngx_open_file(to, NGX_FILE_WRONLY, NGX_FILE_CREATE_OR_OPEN, 842 nfd = ngx_open_file(to, NGX_FILE_WRONLY, NGX_FILE_TRUNCATE, cf->access);
843 cf->access);
844 843
845 if (nfd == NGX_INVALID_FILE) { 844 if (nfd == NGX_INVALID_FILE) {
846 ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno, 845 ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno,
847 ngx_open_file_n " \"%s\" failed", to); 846 ngx_open_file_n " \"%s\" failed", to);
848 goto failed; 847 goto failed;