crypto/evp/e_chacha20_poly1305.c:330: error: BUFFER_OVERRUN_L2
  Offset: [1, 70+max(1, `ctx->cipher_data->num`)] Size: 16 by call to `Poly1305_Final`.
Showing all 11 steps of the trace


crypto/evp/e_chacha20_poly1305.c:233:1: Parameter `ctx->cipher_data->num`
231.   }
232.   
233. > static int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
234.                                       const unsigned char *in, size_t len)
235.   {

crypto/evp/e_chacha20_poly1305.c:307:13: Call
305.   
306.           if (is_endian.little) {
307.               Poly1305_Update(POLY1305_ctx(actx),
                   ^
308.                               (unsigned char *)&actx->len, POLY1305_BLOCK_SIZE);
309.           } else {

crypto/poly1305/poly1305.c:466:1: Parameter `len`
  464.   #endif
  465.   
  466. > void Poly1305_Update(POLY1305 *ctx, const unsigned char *inp, size_t len)
  467.   {
  468.   #ifdef POLY1305_ASM

crypto/poly1305/poly1305.c:489:13: Assignment
  487.               /* Still not enough data to process a block. */
  488.               memcpy(ctx->data + num, inp, len);
  489.               ctx->num = num + len;
                     ^
  490.               return;
  491.           }

crypto/evp/e_chacha20_poly1305.c:330:9: Call
328.               Poly1305_Update(POLY1305_ctx(actx), temp, POLY1305_BLOCK_SIZE);
329.           }
330.           Poly1305_Final(POLY1305_ctx(actx), ctx->encrypt ? actx->tag
               ^
331.                                                           : temp);
332.           actx->mac_inited = 0;

crypto/poly1305/poly1305.c:508:1: <Offset trace>
506.   }
507.   
508. > void Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
509.   {
510.   #ifdef POLY1305_ASM

crypto/poly1305/poly1305.c:508:1: Parameter `ctx->num`
  506.   }
  507.   
  508. > void Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
  509.   {
  510.   #ifdef POLY1305_ASM

crypto/poly1305/poly1305.c:516:10: Assignment
  514.       size_t num;
  515.   
  516.       if ((num = ctx->num)) {
                  ^
  517.           ctx->data[num++] = 1;   /* pad bit */
  518.           while (num < POLY1305_BLOCK_SIZE)

crypto/poly1305/poly1305.c:508:1: <Length trace>
506.   }
507.   
508. > void Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
509.   {
510.   #ifdef POLY1305_ASM

crypto/poly1305/poly1305.c:508:1: Parameter `ctx->data[*]`
  506.   }
  507.   
  508. > void Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
  509.   {
  510.   #ifdef POLY1305_ASM

crypto/poly1305/poly1305.c:517:9: Array access: Offset: [1, 70+max(1, ctx->cipher_data->num)] Size: 16 by call to `Poly1305_Final` 
  515.   
  516.       if ((num = ctx->num)) {
  517.           ctx->data[num++] = 1;   /* pad bit */
                 ^
  518.           while (num < POLY1305_BLOCK_SIZE)
  519.               ctx->data[num++] = 0;
