src/http/ngx_http.c:438: error: Buffer Overrun L3
  Offset: [0, 535] (⇐ [0, 24] + [0, 511]) Size: [0, 4120] by call to `ngx_hash_init`.

src/http/ngx_http.c:432:5: Assignment
430.     hash.hash = &cmcf->headers_in_hash;
431.     hash.key = ngx_hash_key_lc;
432.     hash.max_size = 512;
         ^
433.     hash.bucket_size = ngx_align(64, ngx_cacheline_size);
434.     hash.name = "headers_in_hash";

src/http/ngx_http.c:438:9: Call
436.     hash.temp_pool = NULL;
437. 
438.     if (ngx_hash_init(&hash, headers_in.elts, headers_in.nelts) != NGX_OK) {
             ^
439.         return NGX_ERROR;
440.     }

src/core/ngx_hash.c:251:1: <Offset trace>
249.     (sizeof(void *) + ngx_align((name)->key.len + 2, sizeof(void *)))
250. 
251. ngx_int_t
     ^
252. ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts)
253. {

src/core/ngx_hash.c:251:1: Parameter `hinit->max_size`
  249.     (sizeof(void *) + ngx_align((name)->key.len + 2, sizeof(void *)))
  250. 
  251. ngx_int_t
       ^
  252. ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts)
  253. {

src/core/ngx_hash.c:251:1: <Length trace>
249.     (sizeof(void *) + ngx_align((name)->key.len + 2, sizeof(void *)))
250. 
251. ngx_int_t
     ^
252. ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts)
253. {

src/core/ngx_hash.c:251:1: Parameter `hinit->max_size`
  249.     (sizeof(void *) + ngx_align((name)->key.len + 2, sizeof(void *)))
  250. 
  251. ngx_int_t
       ^
  252. ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts)
  253. {

src/core/ngx_hash.c:363:19: Call
  361. 
  362.     } else {
  363.         buckets = ngx_pcalloc(hinit->pool, size * sizeof(ngx_hash_elt_t *));
                         ^
  364.         if (buckets == NULL) {
  365.             ngx_free(test);

src/core/ngx_palloc.c:299:1: Parameter `size`
    297. 
    298. 
    299. void *
         ^
    300. ngx_pcalloc(ngx_pool_t *pool, size_t size)
    301. {

src/core/ngx_palloc.c:304:9: Call
    302.     void *p;
    303. 
    304.     p = ngx_palloc(pool, size);
                 ^
    305.     if (p) {
    306.         ngx_memzero(p, size);

src/core/ngx_palloc.c:130:13: Assignment
      128. 
      129.         do {
      130.             m = ngx_align_ptr(p->d.last, NGX_ALIGNMENT);
                       ^
      131. 
      132.             if ((size_t) (p->d.end - m) >= size) {

src/core/ngx_palloc.c:135:17: Assignment
      133.                 p->d.last = m + size;
      134. 
      135.                 return m;
                           ^
      136.             }
      137. 

src/core/ngx_palloc.c:304:5: Assignment
    302.     void *p;
    303. 
    304.     p = ngx_palloc(pool, size);
             ^
    305.     if (p) {
    306.         ngx_memzero(p, size);

src/core/ngx_palloc.c:309:5: Assignment
    307.     }
    308. 
    309.     return p;
             ^
    310. }
    311. 

src/core/ngx_hash.c:363:9: Assignment
  361. 
  362.     } else {
  363.         buckets = ngx_pcalloc(hinit->pool, size * sizeof(ngx_hash_elt_t *));
               ^
  364.         if (buckets == NULL) {
  365.             ngx_free(test);

src/core/ngx_hash.c:383:9: Array access: Offset: [0, 535] (⇐ [0, 24] + [0, 511]) Size: [0, 4120] by call to `ngx_hash_init` 
  381.         }
  382. 
  383.         buckets[i] = (ngx_hash_elt_t *) elts;
               ^
  384.         elts += test[i];
  385. 
