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

src/core/ngx_crypt.c:51:1: Parameter `*salt`
49. 
50. 
51. static ngx_int_t
    ^
52. ngx_crypt_apr1(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted)
53. {

src/core/ngx_crypt.c:66:5: Assignment
64.     /* true salt: no magic, max 8 chars, stop at first $ */
65. 
66.     salt += sizeof("$apr1$") - 1;
        ^
67.     last = salt + 8;
68.     for (p = salt; *p && *p != '$' && p < last; p++) { /* void */ }

src/core/ngx_crypt.c:69:5: Assignment
67.     last = salt + 8;
68.     for (p = salt; *p && *p != '$' && p < last; p++) { /* void */ }
69.     saltlen = p - salt;
        ^
70. 
71.     /* hash key and salt */

src/core/ngx_crypt.c:112:13: Call
110. 
111.         if (i % 3) {
112.             ngx_md5_update(&ctx1, salt, saltlen);
                 ^
113.         }
114. 

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, 8] - [1, 8]):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.     }
