use malloc() in ngx_win32_rename_file, set crit level instead of error
diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c index 854627c..b9d01f3 100644 --- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c
@@ -295,7 +295,7 @@ #if (NGX_WIN32) if (err == NGX_EEXIST) { - if (ngx_win32_rename_file(temp, &path, r->pool) != NGX_ERROR) { + if (ngx_win32_rename_file(temp, &path, r->connection->log) == NGX_OK) { if (ngx_rename_file(temp->data, path.data) != NGX_FILE_ERROR) { goto ok;
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index e51638b..3d72499 100644 --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c
@@ -2224,7 +2224,7 @@ #if (NGX_WIN32) if (err == NGX_EEXIST) { - if (ngx_win32_rename_file(temp, &path, r->pool) != NGX_ERROR) { + if (ngx_win32_rename_file(temp, &path, r->connection->log) == NGX_OK) { if (ngx_rename_file(temp->data, path.data) != NGX_FILE_ERROR) { return;
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c index e74dc52..9e5feba 100644 --- a/src/os/win32/ngx_files.c +++ b/src/os/win32/ngx_files.c
@@ -201,14 +201,14 @@ ngx_int_t -ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool) +ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log) { u_char *name; ngx_int_t rc; ngx_uint_t collision; ngx_atomic_uint_t num; - name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")); + name = ngx_alloc(to->len + 1 + 10 + 1 + sizeof("DELETE"), log); if (name == NULL) { return NGX_ERROR; } @@ -230,7 +230,7 @@ collision = 1; - ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed"); + ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "MoveFile() failed"); } if (MoveFile((const char *) from->data, (const char *) to->data) == 0) { @@ -241,15 +241,17 @@ } if (DeleteFile((const char *) name) == 0) { - ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "DeleteFile() failed"); + ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "DeleteFile() failed"); } if (rc == NGX_ERROR) { - ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed"); + ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "MoveFile() failed"); } /* mutex_unlock() */ + ngx_free(name); + return rc; }
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h index 560e91c..799e0b0 100644 --- a/src/os/win32/ngx_files.h +++ b/src/os/win32/ngx_files.h
@@ -86,8 +86,7 @@ #define ngx_rename_file(o, n) MoveFile((const char *) o, (const char *) n) #define ngx_rename_file_n "MoveFile()" -ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, - ngx_pool_t *pool); +ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log);