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

src/http/modules/ngx_http_geo_module.c:1246:9: Assignment
1244. 
1245.     while(vv->data) {
1246.         len = ngx_align(sizeof(ngx_http_variable_value_t) + vv->len,
              ^
1247.                         sizeof(void *));
1248.         ngx_crc32_update(&crc32, (u_char *) vv, len);

src/http/modules/ngx_http_geo_module.c:1250:9: Assignment
1248.         ngx_crc32_update(&crc32, (u_char *) vv, len);
1249.         vv->data += (size_t) base;
1250.         vv = (ngx_http_variable_value_t *) ((u_char *) vv + len);
              ^
1251.     }
1252.     ngx_crc32_update(&crc32, (u_char *) vv, sizeof(ngx_http_variable_value_t));

src/http/modules/ngx_http_geo_module.c:1248:9: Call
1246.         len = ngx_align(sizeof(ngx_http_variable_value_t) + vv->len,
1247.                         sizeof(void *));
1248.         ngx_crc32_update(&crc32, (u_char *) vv, len);
              ^
1249.         vv->data += (size_t) base;
1250.         vv = (ngx_http_variable_value_t *) ((u_char *) vv + len);

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

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

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