src/core/ngx_crypt.c:220: error: Buffer Overrun L3
  Offset: [1, +oo] Size: [0, +oo] by call to `ngx_decode_base64`.

src/core/ngx_crypt.c:213:11: Assignment
211.     encoded.len = ngx_strlen(encoded.data);
212. 
213.     len = ngx_max(ngx_base64_decoded_length(encoded.len), 20);
               ^
214. 
215.     decoded.data = ngx_pnalloc(pool, len);

src/core/ngx_crypt.c:213:5: Assignment
211.     encoded.len = ngx_strlen(encoded.data);
212. 
213.     len = ngx_max(ngx_base64_decoded_length(encoded.len), 20);
         ^
214. 
215.     decoded.data = ngx_pnalloc(pool, len);

src/core/ngx_crypt.c:215:20: Call
213.     len = ngx_max(ngx_base64_decoded_length(encoded.len), 20);
214. 
215.     decoded.data = ngx_pnalloc(pool, len);
                        ^
216.     if (decoded.data == NULL) {
217.         return NGX_ERROR;

src/core/ngx_palloc.c:140:16: Call
  138. #if !(NGX_DEBUG_PALLOC)
  139.     if (size <= pool->max) {
  140.         return ngx_palloc_small(pool, size, 0);
                      ^
  141.     }
  142. #endif

src/core/ngx_palloc.c:157:9: Assignment
    155. 
    156.     do {
    157.         m = p->d.last;
                 ^
    158. 
    159.         if (align) {

src/core/ngx_palloc.c:166:13: Assignment
    164.             p->d.last = m + size;
    165. 
    166.             return m;
                     ^
    167.         }
    168. 

src/core/ngx_palloc.c:140:9: Assignment
  138. #if !(NGX_DEBUG_PALLOC)
  139.     if (size <= pool->max) {
  140.         return ngx_palloc_small(pool, size, 0);
               ^
  141.     }
  142. #endif

src/core/ngx_crypt.c:215:5: Assignment
213.     len = ngx_max(ngx_base64_decoded_length(encoded.len), 20);
214. 
215.     decoded.data = ngx_pnalloc(pool, len);
         ^
216.     if (decoded.data == NULL) {
217.         return NGX_ERROR;

src/core/ngx_crypt.c:220:10: Call
218.     }
219. 
220.     rc = ngx_decode_base64(&decoded, &encoded);
              ^
221. 
222.     if (rc != NGX_OK || decoded.len < 20) {

src/core/ngx_string.c:1185:1: Parameter `*dst->data`
  1183. 
  1184. 
  1185. ngx_int_t
        ^
  1186. ngx_decode_base64(ngx_str_t *dst, ngx_str_t *src)
  1187. {

src/core/ngx_string.c:1208:12: Call
  1206.     };
  1207. 
  1208.     return ngx_decode_base64_internal(dst, src, basis64);
                   ^
  1209. }
  1210. 

src/core/ngx_string.c:1239:1: <Length trace>
1237. 
1238. 
1239. static ngx_int_t
      ^
1240. ngx_decode_base64_internal(ngx_str_t *dst, ngx_str_t *src, const u_char *basis)
1241. {

src/core/ngx_string.c:1239:1: Parameter `*dst->data`
    1237. 
    1238. 
    1239. static ngx_int_t
          ^
    1240. ngx_decode_base64_internal(ngx_str_t *dst, ngx_str_t *src, const u_char *basis)
    1241. {

src/core/ngx_string.c:1260:5: Assignment
    1258. 
    1259.     s = src->data;
    1260.     d = dst->data;
              ^
    1261. 
    1262.     while (len > 3) {

src/core/ngx_string.c:1263:10: Assignment
    1261. 
    1262.     while (len > 3) {
    1263.         *d++ = (u_char) (basis[s[0]] << 2 | basis[s[1]] >> 4);
                   ^
    1264.         *d++ = (u_char) (basis[s[1]] << 4 | basis[s[2]] >> 2);
    1265.         *d++ = (u_char) (basis[s[2]] << 6 | basis[s[3]]);

src/core/ngx_string.c:1264:9: Array access: Offset: [1, +oo] Size: [0, +oo] by call to `ngx_decode_base64` 
    1262.     while (len > 3) {
    1263.         *d++ = (u_char) (basis[s[0]] << 2 | basis[s[1]] >> 4);
    1264.         *d++ = (u_char) (basis[s[1]] << 4 | basis[s[2]] >> 2);
                  ^
    1265.         *d++ = (u_char) (basis[s[2]] << 6 | basis[s[3]]);
    1266. 
