src/core/ngx_crypt.c:85: error: Integer Overflow L2
  ([1, 16] - [1, 16]):unsigned64 by call to `ngx_md5_update`.

src/core/ngx_crypt.c:85:37: Assignment
83. 
84.     for (n = keylen; n > 0; n -= 16) {
85.         ngx_md5_update(&md5, final, n > 16 ? 16 : n);
                                        ^
86.     }
87. 

src/core/ngx_crypt.c:85:9: Call
83. 
84.     for (n = keylen; n > 0; n -= 16) {
85.         ngx_md5_update(&md5, final, n > 16 ? 16 : n);
            ^
86.     }
87. 

src/core/ngx_md5.c:30:1: <LHS trace>
28. 
29. 
30. void
    ^
31. ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size)
32. {

src/core/ngx_md5.c:30:1: Parameter `size`
  28. 
  29. 
  30. void
      ^
  31. ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size)
  32. {

src/core/ngx_md5.c:30:1: <RHS trace>
28. 
29. 
30. void
    ^
31. ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size)
32. {

src/core/ngx_md5.c:30:1: Parameter `size`
  28. 
  29. 
  30. void
      ^
  31. ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size)
  32. {

src/core/ngx_md5.c:48:9: Binary operation: ([1, 16] - [1, 16]):unsigned64 by call to `ngx_md5_update` 
  46.         ngx_memcpy(&ctx->buffer[used], data, free);
  47.         data = (u_char *) data + free;
  48.         size -= free;
              ^
  49.         (void) ngx_md5_body(ctx, ctx->buffer, 64);
  50.     }
