mirror of
https://github.com/nginx/nginx.git
synced 2025-08-05 22:26:15 +08:00
Disable symlinks: initialization of the "disable_symlinks" field in
ngx_open_file_info_t moved to a separate function. This is preparation for the "from=" parameter implementation of the "disable_symlinks" directive.
This commit is contained in:
parent
346791187f
commit
0e05ca0404
@ -109,9 +109,10 @@ ngx_http_flv_handler(ngx_http_request_t *r)
|
||||
of.min_uses = clcf->open_file_cache_min_uses;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -129,9 +129,10 @@ ngx_http_gzip_static_handler(ngx_http_request_t *r)
|
||||
of.min_uses = clcf->open_file_cache_min_uses;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -209,9 +209,10 @@ ngx_http_index_handler(ngx_http_request_t *r)
|
||||
of.test_only = 1;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
@ -307,9 +308,10 @@ ngx_http_index_test_dir(ngx_http_request_t *r, ngx_http_core_loc_conf_t *clcf,
|
||||
of.test_only = 1;
|
||||
of.valid = clcf->open_file_cache_valid;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &dir, &of) != NGX_OK) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &dir, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -394,9 +394,11 @@ ngx_http_log_script_write(ngx_http_request_t *r, ngx_http_log_script_t *script,
|
||||
of.test_only = 1;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
/* simulate successful logging */
|
||||
return len;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
@ -444,9 +446,11 @@ ngx_http_log_script_write(ngx_http_request_t *r, ngx_http_log_script_t *script,
|
||||
of.valid = llcf->open_file_cache_valid;
|
||||
of.min_uses = llcf->open_file_cache_min_uses;
|
||||
of.directio = NGX_OPEN_FILE_DIRECTIO_OFF;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &log, &of) != NGX_OK) {
|
||||
/* simulate successful logging */
|
||||
return len;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(llcf->open_file_cache, &log, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -440,9 +440,10 @@ ngx_http_mp4_handler(ngx_http_request_t *r)
|
||||
of.min_uses = clcf->open_file_cache_min_uses;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -94,9 +94,10 @@ ngx_http_static_handler(ngx_http_request_t *r)
|
||||
of.min_uses = clcf->open_file_cache_min_uses;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -662,9 +662,10 @@ sendfile(r, filename, offset = -1, bytes = 0)
|
||||
of.min_uses = clcf->open_file_cache_min_uses;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
@ -1320,9 +1320,11 @@ ngx_http_core_try_files_phase(ngx_http_request_t *r,
|
||||
of.test_only = 1;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
@ -2645,6 +2647,18 @@ ngx_http_cleanup_add(ngx_http_request_t *r, size_t size)
|
||||
}
|
||||
|
||||
|
||||
ngx_int_t
|
||||
ngx_http_set_disable_symlinks(ngx_http_request_t *r,
|
||||
ngx_http_core_loc_conf_t *clcf, ngx_str_t *path, ngx_open_file_info_t *of)
|
||||
{
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of->disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
|
||||
{
|
||||
|
@ -509,6 +509,10 @@ ngx_int_t ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *chain);
|
||||
ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *chain);
|
||||
|
||||
|
||||
ngx_int_t ngx_http_set_disable_symlinks(ngx_http_request_t *r,
|
||||
ngx_http_core_loc_conf_t *clcf, ngx_str_t *path, ngx_open_file_info_t *of);
|
||||
|
||||
|
||||
extern ngx_module_t ngx_http_core_module;
|
||||
|
||||
extern ngx_uint_t ngx_http_max_module;
|
||||
|
@ -1505,9 +1505,12 @@ ngx_http_script_file_code(ngx_http_script_engine_t *e)
|
||||
of.test_only = 1;
|
||||
of.errors = clcf->open_file_cache_errors;
|
||||
of.events = clcf->open_file_cache_events;
|
||||
#if (NGX_HAVE_OPENAT)
|
||||
of.disable_symlinks = clcf->disable_symlinks;
|
||||
#endif
|
||||
|
||||
if (ngx_http_set_disable_symlinks(r, clcf, &path, &of) != NGX_OK) {
|
||||
e->ip = ngx_http_script_exit;
|
||||
e->status = NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
if (ngx_open_cached_file(clcf->open_file_cache, &path, &of, r->pool)
|
||||
!= NGX_OK)
|
||||
|
Loading…
Reference in New Issue
Block a user