Latest update - 7437, Version bump
This commit is contained in:
+2
-2
@@ -9,8 +9,8 @@
|
||||
#define _NGINX_H_INCLUDED_
|
||||
|
||||
|
||||
#define nginx_version 1015008
|
||||
#define NGINX_VERSION "1.15.8"
|
||||
#define nginx_version 1015009
|
||||
#define NGINX_VERSION "1.15.9"
|
||||
#define NGINX_VER "nginx/" NGINX_VERSION " by Hakase"
|
||||
|
||||
#ifndef NGINX_SERVER
|
||||
|
||||
+2
-2
@@ -1017,13 +1017,13 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree)
|
||||
|
||||
file.len = tree->len + 1 + len;
|
||||
|
||||
if (file.len + NGX_DIR_MASK_LEN > buf.len) {
|
||||
if (file.len > buf.len) {
|
||||
|
||||
if (buf.len) {
|
||||
ngx_free(buf.data);
|
||||
}
|
||||
|
||||
buf.len = tree->len + 1 + len + NGX_DIR_MASK_LEN;
|
||||
buf.len = tree->len + 1 + len;
|
||||
|
||||
buf.data = ngx_alloc(buf.len + 1, ctx->log);
|
||||
if (buf.data == NULL) {
|
||||
|
||||
@@ -186,8 +186,6 @@ ngx_http_autoindex_handler(ngx_http_request_t *r)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* NGX_DIR_MASK_LEN is lesser than NGX_HTTP_AUTOINDEX_PREALLOCATE */
|
||||
|
||||
last = ngx_http_map_uri_to_path(r, &path, &root,
|
||||
NGX_HTTP_AUTOINDEX_PREALLOCATE);
|
||||
if (last == NULL) {
|
||||
@@ -436,7 +434,7 @@ ngx_http_autoindex_html(ngx_http_request_t *r, ngx_array_t *entries)
|
||||
{
|
||||
u_char *last, scale;
|
||||
off_t length;
|
||||
size_t len, char_len, escape_html;
|
||||
size_t len, entry_len, char_len, escape_html;
|
||||
ngx_tm_t tm;
|
||||
ngx_buf_t *b;
|
||||
ngx_int_t size;
|
||||
@@ -501,17 +499,23 @@ ngx_http_autoindex_html(ngx_http_request_t *r, ngx_array_t *entries)
|
||||
entry[i].utf_len = entry[i].name.len;
|
||||
}
|
||||
|
||||
len += sizeof("<a href=\"") - 1
|
||||
+ entry[i].name.len + entry[i].escape
|
||||
+ 1 /* 1 is for "/" */
|
||||
+ sizeof("\">") - 1
|
||||
+ entry[i].name.len - entry[i].utf_len
|
||||
+ entry[i].escape_html
|
||||
+ NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof(">") - 2
|
||||
+ sizeof("</a>") - 1
|
||||
+ sizeof(" 28-Sep-1970 12:00 ") - 1
|
||||
+ 20 /* the file size */
|
||||
+ 2;
|
||||
entry_len = sizeof("<a href=\"") - 1
|
||||
+ entry[i].name.len + entry[i].escape
|
||||
+ 1 /* 1 is for "/" */
|
||||
+ sizeof("\">") - 1
|
||||
+ entry[i].name.len - entry[i].utf_len
|
||||
+ entry[i].escape_html
|
||||
+ NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof(">") - 2
|
||||
+ sizeof("</a>") - 1
|
||||
+ sizeof(" 28-Sep-1970 12:00 ") - 1
|
||||
+ 20 /* the file size */
|
||||
+ 2;
|
||||
|
||||
if (len > NGX_MAX_SIZE_T_VALUE - entry_len) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
len += entry_len;
|
||||
}
|
||||
|
||||
b = ngx_create_temp_buf(r->pool, len);
|
||||
@@ -699,7 +703,7 @@ static ngx_buf_t *
|
||||
ngx_http_autoindex_json(ngx_http_request_t *r, ngx_array_t *entries,
|
||||
ngx_str_t *callback)
|
||||
{
|
||||
size_t len;
|
||||
size_t len, entry_len;
|
||||
ngx_buf_t *b;
|
||||
ngx_uint_t i;
|
||||
ngx_http_autoindex_entry_t *entry;
|
||||
@@ -716,15 +720,21 @@ ngx_http_autoindex_json(ngx_http_request_t *r, ngx_array_t *entries,
|
||||
entry[i].escape = ngx_escape_json(NULL, entry[i].name.data,
|
||||
entry[i].name.len);
|
||||
|
||||
len += sizeof("{ }," CRLF) - 1
|
||||
+ sizeof("\"name\":\"\"") - 1
|
||||
+ entry[i].name.len + entry[i].escape
|
||||
+ sizeof(", \"type\":\"directory\"") - 1
|
||||
+ sizeof(", \"mtime\":\"Wed, 31 Dec 1986 10:00:00 GMT\"") - 1;
|
||||
entry_len = sizeof("{ }," CRLF) - 1
|
||||
+ sizeof("\"name\":\"\"") - 1
|
||||
+ entry[i].name.len + entry[i].escape
|
||||
+ sizeof(", \"type\":\"directory\"") - 1
|
||||
+ sizeof(", \"mtime\":\"Wed, 31 Dec 1986 10:00:00 GMT\"") - 1;
|
||||
|
||||
if (entry[i].file) {
|
||||
len += sizeof(", \"size\":") - 1 + NGX_OFF_T_LEN;
|
||||
entry_len += sizeof(", \"size\":") - 1 + NGX_OFF_T_LEN;
|
||||
}
|
||||
|
||||
if (len > NGX_MAX_SIZE_T_VALUE - entry_len) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
len += entry_len;
|
||||
}
|
||||
|
||||
b = ngx_create_temp_buf(r->pool, len);
|
||||
@@ -843,7 +853,7 @@ ngx_http_autoindex_jsonp_callback(ngx_http_request_t *r, ngx_str_t *callback)
|
||||
static ngx_buf_t *
|
||||
ngx_http_autoindex_xml(ngx_http_request_t *r, ngx_array_t *entries)
|
||||
{
|
||||
size_t len;
|
||||
size_t len, entry_len;
|
||||
ngx_tm_t tm;
|
||||
ngx_buf_t *b;
|
||||
ngx_str_t type;
|
||||
@@ -861,13 +871,19 @@ ngx_http_autoindex_xml(ngx_http_request_t *r, ngx_array_t *entries)
|
||||
entry[i].escape = ngx_escape_html(NULL, entry[i].name.data,
|
||||
entry[i].name.len);
|
||||
|
||||
len += sizeof("<directory></directory>" CRLF) - 1
|
||||
+ entry[i].name.len + entry[i].escape
|
||||
+ sizeof(" mtime=\"1986-12-31T10:00:00Z\"") - 1;
|
||||
entry_len = sizeof("<directory></directory>" CRLF) - 1
|
||||
+ entry[i].name.len + entry[i].escape
|
||||
+ sizeof(" mtime=\"1986-12-31T10:00:00Z\"") - 1;
|
||||
|
||||
if (entry[i].file) {
|
||||
len += sizeof(" size=\"\"") - 1 + NGX_OFF_T_LEN;
|
||||
entry_len += sizeof(" size=\"\"") - 1 + NGX_OFF_T_LEN;
|
||||
}
|
||||
|
||||
if (len > NGX_MAX_SIZE_T_VALUE - entry_len) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
len += entry_len;
|
||||
}
|
||||
|
||||
b = ngx_create_temp_buf(r->pool, len);
|
||||
|
||||
@@ -98,7 +98,7 @@ ngx_http_random_index_handler(ngx_http_request_t *r)
|
||||
}
|
||||
|
||||
#if (NGX_HAVE_D_TYPE)
|
||||
len = NGX_DIR_MASK_LEN;
|
||||
len = 0;
|
||||
#else
|
||||
len = NGX_HTTP_RANDOM_INDEX_PREALLOCATE;
|
||||
#endif
|
||||
|
||||
@@ -545,6 +545,13 @@ ngx_http_userid_create_uid(ngx_http_request_t *r, ngx_http_userid_ctx_t *ctx,
|
||||
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if (NGX_HAVE_UNIX_DOMAIN)
|
||||
case AF_UNIX:
|
||||
ctx->uid_set[0] = 0;
|
||||
break;
|
||||
#endif
|
||||
|
||||
default: /* AF_INET */
|
||||
sin = (struct sockaddr_in *) c->local_sockaddr;
|
||||
ctx->uid_set[0] = sin->sin_addr.s_addr;
|
||||
|
||||
@@ -213,9 +213,6 @@ void ngx_close_file_mapping(ngx_file_mapping_t *fm);
|
||||
#endif
|
||||
|
||||
|
||||
#define NGX_DIR_MASK_LEN 0
|
||||
|
||||
|
||||
ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
|
||||
#define ngx_open_dir_n "opendir()"
|
||||
|
||||
|
||||
@@ -427,16 +427,31 @@ ngx_realpath(u_char *path, u_char *resolved)
|
||||
ngx_int_t
|
||||
ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir)
|
||||
{
|
||||
ngx_cpystrn(name->data + name->len, NGX_DIR_MASK, NGX_DIR_MASK_LEN + 1);
|
||||
u_char *pattern, *p;
|
||||
ngx_err_t err;
|
||||
|
||||
dir->dir = FindFirstFile((const char *) name->data, &dir->finddata);
|
||||
|
||||
name->data[name->len] = '\0';
|
||||
|
||||
if (dir->dir == INVALID_HANDLE_VALUE) {
|
||||
pattern = malloc(name->len + 3);
|
||||
if (pattern == NULL) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
p = ngx_cpymem(pattern, name->data, name->len);
|
||||
|
||||
*p++ = '/';
|
||||
*p++ = '*';
|
||||
*p = '\0';
|
||||
|
||||
dir->dir = FindFirstFile((const char *) pattern, &dir->finddata);
|
||||
|
||||
if (dir->dir == INVALID_HANDLE_VALUE) {
|
||||
err = ngx_errno;
|
||||
ngx_free(pattern);
|
||||
ngx_set_errno(err);
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
ngx_free(pattern);
|
||||
|
||||
dir->valid_info = 1;
|
||||
dir->ready = 1;
|
||||
|
||||
|
||||
@@ -181,9 +181,6 @@ u_char *ngx_realpath(u_char *path, u_char *resolved);
|
||||
#define NGX_HAVE_MAX_PATH 1
|
||||
#define NGX_MAX_PATH MAX_PATH
|
||||
|
||||
#define NGX_DIR_MASK (u_char *) "/*"
|
||||
#define NGX_DIR_MASK_LEN 2
|
||||
|
||||
|
||||
ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
|
||||
#define ngx_open_dir_n "FindFirstFile()"
|
||||
|
||||
Reference in New Issue
Block a user