diff options
author | Valentin Bartenev <vbart@nginx.com> | 2012-02-21 19:01:25 +0400 |
---|---|---|
committer | Valentin Bartenev <vbart@nginx.com> | 2012-02-21 19:01:25 +0400 |
commit | 8c27e6429aa634091ad07e02bfee91084497549f (patch) | |
tree | 5ca4a83d328e8ba47f93ee68c9990e590ff573f0 /src/core/ngx_open_file_cache.c | |
parent | 7ba66f42a0cb15ff3cd6a93d6927f68fb8363a13 (diff) |
Disable symlinks: cleanups once again.
In collaboration with Ruslan Ermilov.
Diffstat (limited to 'src/core/ngx_open_file_cache.c')
-rw-r--r-- | src/core/ngx_open_file_cache.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/core/ngx_open_file_cache.c b/src/core/ngx_open_file_cache.c index f42a16f46..9ce0308ce 100644 --- a/src/core/ngx_open_file_cache.c +++ b/src/core/ngx_open_file_cache.c @@ -504,8 +504,8 @@ ngx_openat_file_owner(ngx_fd_t at_fd, const u_char *name, fd = ngx_openat_file(at_fd, name, mode, create, access); - if (fd == NGX_FILE_ERROR) { - return NGX_FILE_ERROR; + if (fd == NGX_INVALID_FILE) { + return NGX_INVALID_FILE; } if (ngx_file_at_info(at_fd, name, &atfi, AT_SYMLINK_NOFOLLOW) @@ -582,13 +582,12 @@ ngx_open_file_wrapper(ngx_str_t *name, ngx_open_file_info_t *of, p = name->data; end = p + name->len; - at_fd = NGX_AT_FDCWD; at_name = *name; - if (p[0] == '/') { - at_fd = ngx_openat_file(at_fd, "/", - NGX_FILE_RDONLY|NGX_FILE_NONBLOCK, - NGX_FILE_OPEN, 0); + if (*p == '/') { + at_fd = ngx_open_file("/", + NGX_FILE_RDONLY|NGX_FILE_NONBLOCK, + NGX_FILE_OPEN, 0); if (at_fd == NGX_INVALID_FILE) { of->err = ngx_errno; @@ -598,6 +597,9 @@ ngx_open_file_wrapper(ngx_str_t *name, ngx_open_file_info_t *of, at_name.len = 1; p++; + + } else { + at_fd = NGX_AT_FDCWD; } for ( ;; ) { @@ -642,7 +644,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 != NGX_AT_FDCWD) { + if (p == end) { /* * If pathname ends with a trailing slash, check if last path |