Mercurial > hg > nginx-ranges
diff src/core/ngx_hash.c @ 583:8246d8a2c2be NGINX_0_8_37
nginx 0.8.37
*) Feature: the ngx_http_split_clients_module.
*) Feature: the "map" directive supports keys more than 255 characters.
*) Bugfix: nginx ignored the "private" and "no-store" values in the
"Cache-Control" backend response header line.
*) Bugfix: a "stub" parameter of an "include" SSI directive was not
used, if empty response has 200 status code.
*) Bugfix: if a proxied or FastCGI request was internally redirected to
another proxied or FastCGI location, then a segmentation fault might
occur in a worker process; the bug had appeared in 0.8.33.
Thanks to Yichun Zhang.
*) Bugfix: IMAP connections may hang until they timed out while talking
to Zimbra server.
Thanks to Alan Batie.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 17 May 2010 00:00:00 +0400 |
parents | 0161f3197817 |
children |
line wrap: on
line diff
--- a/src/core/ngx_hash.c +++ b/src/core/ngx_hash.c @@ -245,7 +245,7 @@ ngx_hash_find_combined(ngx_hash_combined #define NGX_HASH_ELT_SIZE(name) \ - (sizeof(void *) + ngx_align((name)->key.len + 1, sizeof(void *))) + (sizeof(void *) + ngx_align((name)->key.len + 2, sizeof(void *))) ngx_int_t ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts) @@ -257,14 +257,6 @@ ngx_hash_init(ngx_hash_init_t *hinit, ng ngx_hash_elt_t *elt, **buckets; for (n = 0; n < nelts; n++) { - if (names[n].key.len >= 255) { - ngx_log_error(NGX_LOG_EMERG, hinit->pool->log, 0, - "the \"%V\" value to hash is to long: %uz bytes, " - "the maximum length can be 255 bytes only", - &names[n].key, names[n].key.len); - return NGX_ERROR; - } - if (hinit->bucket_size < NGX_HASH_ELT_SIZE(&names[n]) + sizeof(void *)) { ngx_log_error(NGX_LOG_EMERG, hinit->pool->log, 0, @@ -406,7 +398,7 @@ found: elt = (ngx_hash_elt_t *) ((u_char *) buckets[key] + test[key]); elt->value = names[n].value; - elt->len = (u_char) names[n].key.len; + elt->len = (u_short) names[n].key.len; ngx_strlow(elt->name, names[n].key.data, names[n].key.len);