Mercurial > hg > nginx-vendor-current
diff src/http/modules/ngx_http_autoindex_module.c @ 78:9db7e0b5b27f NGINX_0_1_39
nginx 0.1.39
*) The changes in the ngx_http_charset_module: the "default_charset"
directive was canceled; the "charset" directive sets the response
charset; the "source_charset" directive sets the source charset only.
*) Bugfix: the backend "WWW-Authenticate" header line did not
transferred while the 401 response code redirecting.
*) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may
close a connection before anything was transferred to a client; bug
appeared in 0.1.38.
*) Workaround: the Linux glibc crypt_r() initialization bug.
*) Bugfix: the ngx_http_ssi_module did not support the relative URI in
the "include virtual" command.
*) Bugfix: if the backend response had the "Location" header line and
nginx should not rewrite this line, then the 500 code response body
was transferred; bug appeared in 0.1.29.
*) Bugfix: some directives of the ngx_http_proxy_module and
ngx_http_fastcgi_module were not inherited from the server to the
location level; bug appeared in 0.1.29.
*) Bugfix: the ngx_http_ssl_module did not support the certificate
chain.
*) Bugfix: the ngx_http_autoindex_module did not show correctly the
long file names; bug appeared in 0.1.38.
*) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the
login state.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Thu, 14 Jul 2005 00:00:00 +0400 |
parents | da9a3b14312d |
children | 71c46860eb55 |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_autoindex_module.c +++ b/src/http/modules/ngx_http_autoindex_module.c @@ -315,16 +315,16 @@ ngx_http_autoindex_handler(ngx_http_requ entry->name.len = len; - entry->escape = 2 * ngx_escape_uri(NULL, ngx_de_name(&dir), len, - NGX_ESCAPE_HTML); - - entry->name.data = ngx_palloc(pool, len + entry->escape + 1); + entry->name.data = ngx_palloc(pool, len + 1); if (entry->name.data == NULL) { return ngx_http_autoindex_error(r, &dir, dname.data); } ngx_cpystrn(entry->name.data, ngx_de_name(&dir), len + 1); + entry->escape = 2 * ngx_escape_uri(NULL, ngx_de_name(&dir), len, + NGX_ESCAPE_HTML); + if (r->utf8) { entry->utf_len = ngx_utf_length(&entry->name); } else { @@ -353,14 +353,14 @@ ngx_http_autoindex_handler(ngx_http_requ entry = entries.elts; for (i = 0; i < entries.nelts; i++) { len += sizeof("<a href=\"") - 1 + + entry[i].name.len + entry[i].escape + 1 /* 1 is for "/" */ - + entry[i].name.len + entry[i].escape + sizeof("\">") - 1 + entry[i].name.len - entry[i].utf_len + NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof(">") - 2 + sizeof("</a>") - 1 + sizeof(" 28-Sep-1970 12:00 ") - 1 - + 20 + + 20 /* the file size */ + 2; } @@ -407,7 +407,7 @@ ngx_http_autoindex_handler(ngx_http_requ len = entry[i].utf_len; - if (len) { + if (entry[i].name.len - len) { if (len > NGX_HTTP_AUTOINDEX_NAME_LEN) { copy = NGX_HTTP_AUTOINDEX_NAME_LEN - 3 + 1;