nxt_http_parse.c (19:385969e9f503) nxt_http_parse.c (38:c47bca12f947)
1
2/*
3 * Copyright (C) NGINX, Inc.
4 * Copyright (C) Valentin V. Bartenev
5 */
6
7#include <nxt_main.h>
8

--- 757 unchanged lines hidden (view full) ---

766nxt_http_fields_hash_t *
767nxt_http_fields_hash(nxt_http_fields_t *fields, nxt_mem_pool_t *mp)
768{
769 size_t min_length, max_length, length, size;
770 nxt_uint_t i, j, n;
771 nxt_http_fields_hash_t *hash;
772 nxt_http_fields_hash_entry_t *entry;
773
1
2/*
3 * Copyright (C) NGINX, Inc.
4 * Copyright (C) Valentin V. Bartenev
5 */
6
7#include <nxt_main.h>
8

--- 757 unchanged lines hidden (view full) ---

766nxt_http_fields_hash_t *
767nxt_http_fields_hash(nxt_http_fields_t *fields, nxt_mem_pool_t *mp)
768{
769 size_t min_length, max_length, length, size;
770 nxt_uint_t i, j, n;
771 nxt_http_fields_hash_t *hash;
772 nxt_http_fields_hash_entry_t *entry;
773
774 min_length = 0;
774 min_length = 32 + 1;
775 max_length = 0;
776
777 for (i = 0; fields[i].handler != NULL; i++) {
778 length = fields[i].name.length;
779
780 if (length > 32) {
781 /* TODO */
782 return NULL;
783 }
784
785 min_length = nxt_min(length, min_length);
786 max_length = nxt_max(length, max_length);
787 }
788
775 max_length = 0;
776
777 for (i = 0; fields[i].handler != NULL; i++) {
778 length = fields[i].name.length;
779
780 if (length > 32) {
781 /* TODO */
782 return NULL;
783 }
784
785 min_length = nxt_min(length, min_length);
786 max_length = nxt_max(length, max_length);
787 }
788
789 size = (max_length - min_length + 1)
790 * sizeof(nxt_http_fields_hash_entry_t *);
789 size = sizeof(nxt_http_fields_hash_t);
791
790
792 hash = nxt_mem_zalloc(mp, sizeof(nxt_http_fields_hash_t) + size);
791 if (min_length <= 32) {
792 size += (max_length - min_length + 1)
793 * sizeof(nxt_http_fields_hash_entry_t *);
794 }
793
795
796 hash = nxt_mem_zalloc(mp, size);
794 if (nxt_slow_path(hash == NULL)) {
795 return NULL;
796 }
797
798 hash->min_length = min_length;
799 hash->max_length = max_length;
800
801 for (i = 0; fields[i].handler != NULL; i++) {

--- 48 unchanged lines hidden ---
797 if (nxt_slow_path(hash == NULL)) {
798 return NULL;
799 }
800
801 hash->min_length = min_length;
802 hash->max_length = max_length;
803
804 for (i = 0; fields[i].handler != NULL; i++) {

--- 48 unchanged lines hidden ---