src/http/modules/ngx_http_geo_module.c:1476: error: Buffer Overrun L3
  Offset: [16, +oo] Size: [0, +oo] by call to `ngx_crc32_update`.

src/http/modules/ngx_http_geo_module.c:1474:9: Assignment
1472. 
1473.     while (vv->data) {
1474.         len = ngx_align(sizeof(ngx_http_variable_value_t) + vv->len,
              ^
1475.                         sizeof(void *));
1476.         ngx_crc32_update(&crc32, (u_char *) vv, len);

src/http/modules/ngx_http_geo_module.c:1478:9: Assignment
1476.         ngx_crc32_update(&crc32, (u_char *) vv, len);
1477.         vv->data += (size_t) base;
1478.         vv = (ngx_http_variable_value_t *) ((u_char *) vv + len);
              ^
1479.     }
1480.     ngx_crc32_update(&crc32, (u_char *) vv, sizeof(ngx_http_variable_value_t));

src/http/modules/ngx_http_geo_module.c:1476:9: Call
1474.         len = ngx_align(sizeof(ngx_http_variable_value_t) + vv->len,
1475.                         sizeof(void *));
1476.         ngx_crc32_update(&crc32, (u_char *) vv, len);
              ^
1477.         vv->data += (size_t) base;
1478.         vv = (ngx_http_variable_value_t *) ((u_char *) vv + len);

src/core/ngx_crc32.h:57:1: <Length trace>
55. 
56. 
57. static ngx_inline void
    ^
58. ngx_crc32_update(uint32_t *crc, u_char *p, size_t len)
59. {

src/core/ngx_crc32.h:57:1: Parameter `*p`
  55. 
  56. 
  57. static ngx_inline void
      ^
  58. ngx_crc32_update(uint32_t *crc, u_char *p, size_t len)
  59. {

src/core/ngx_crc32.h:65:37: Array access: Offset: [16, +oo] Size: [0, +oo] by call to `ngx_crc32_update` 
  63. 
  64.     while (len--) {
  65.         c = ngx_crc32_table256[(c ^ *p++) & 0xff] ^ (c >> 8);
                                          ^
  66.     }
  67. 
