From 7ba66f42a0cb15ff3cd6a93d6927f68fb8363a13 Mon Sep 17 00:00:00 2001 From: Maxim Dounin Date: Mon, 20 Feb 2012 19:14:35 +0000 Subject: [PATCH] Disable symlinks: added explicit cast of AT_FDCWD (ticket #111). Solaris has AT_FDCWD defined to unsigned value, and comparison of a file descriptor with it causes warnings in modern versions of gcc. Explicitly cast AT_FDCWD to ngx_fd_t to resolve these warnings. --- src/core/ngx_open_file_cache.c | 8 ++++---- src/os/unix/ngx_files.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/ngx_open_file_cache.c b/src/core/ngx_open_file_cache.c index acfc0954c..f42a16f46 100644 --- a/src/core/ngx_open_file_cache.c +++ b/src/core/ngx_open_file_cache.c @@ -582,7 +582,7 @@ ngx_open_file_wrapper(ngx_str_t *name, ngx_open_file_info_t *of, p = name->data; end = p + name->len; - at_fd = AT_FDCWD; + at_fd = NGX_AT_FDCWD; at_name = *name; if (p[0] == '/') { @@ -632,7 +632,7 @@ ngx_open_file_wrapper(ngx_str_t *name, ngx_open_file_info_t *of, goto failed; } - if (at_fd != AT_FDCWD && ngx_close_file(at_fd) == NGX_FILE_ERROR) { + if (at_fd != NGX_AT_FDCWD && ngx_close_file(at_fd) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, ngx_close_file_n " \"%V\" failed", &at_name); } @@ -642,7 +642,7 @@ ngx_open_file_wrapper(ngx_str_t *name, ngx_open_file_info_t *of, at_name.len = cp - at_name.data; } - if (p == end && at_fd != AT_FDCWD) { + if (p == end && at_fd != NGX_AT_FDCWD) { /* * If pathname ends with a trailing slash, check if last path @@ -690,7 +690,7 @@ ngx_open_file_wrapper(ngx_str_t *name, ngx_open_file_info_t *of, failed: - if (at_fd != AT_FDCWD && ngx_close_file(at_fd) == NGX_FILE_ERROR) { + if (at_fd != NGX_AT_FDCWD && ngx_close_file(at_fd) == NGX_FILE_ERROR) { ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, ngx_close_file_n " \"%V\" failed", &at_name); } diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 1526f9b77..d397c2fbd 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -340,6 +340,8 @@ size_t ngx_fs_bsize(u_char *name); #define ngx_file_at_info_n "fstatat()" +#define NGX_AT_FDCWD (ngx_fd_t) AT_FDCWD + #endif