crypto/evp/e_aria.c:479: error: BUFFER_OVERRUN_L3
  Offset added: 16 Size: [0, +oo] by call to `CRYPTO_gcm128_tag`.
Showing all 6 steps of the trace


crypto/evp/e_aria.c:479:5: Call
477.           return 0;
478.       }
479.       CRYPTO_gcm128_tag(&gctx->gcm, EVP_CIPHER_CTX_buf_noconst(ctx), 16);
           ^
480.       gctx->taglen = 16;
481.       /* Don't reuse the IV */

crypto/modes/gcm128.c:1660:12: <Offset trace>
1658.       CRYPTO_gcm128_finish(ctx, NULL, 0);
1659.       memcpy(tag, ctx->Xi.c,
1660.              len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
                   ^
1661.   }
1662.   

crypto/modes/gcm128.c:1660:12: Assignment
  1658.       CRYPTO_gcm128_finish(ctx, NULL, 0);
  1659.       memcpy(tag, ctx->Xi.c,
  1660.              len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
                     ^
  1661.   }
  1662.   

crypto/modes/gcm128.c:1656:1: <Length trace>
1654.   }
1655.   
1656. > void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len)
1657.   {
1658.       CRYPTO_gcm128_finish(ctx, NULL, 0);

crypto/modes/gcm128.c:1656:1: Parameter `ctx->Xi.c[*]`
  1654.   }
  1655.   
  1656. > void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len)
  1657.   {
  1658.       CRYPTO_gcm128_finish(ctx, NULL, 0);

crypto/modes/gcm128.c:1659:5: Array access: Offset added: 16 Size: [0, +oo] by call to `CRYPTO_gcm128_tag` 
  1657.   {
  1658.       CRYPTO_gcm128_finish(ctx, NULL, 0);
  1659.       memcpy(tag, ctx->Xi.c,
              ^
  1660.              len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
  1661.   }

void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len)
{
    CRYPTO_gcm128_finish(ctx, NULL, 0);
    memcpy(tag, ctx->Xi.c,
           len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
}
['static int aria_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const unsigned char *in, size_t len)\n{\n    EVP_ARIA_GCM_CTX *gctx = EVP_C_DATA(EVP_ARIA_GCM_CTX,ctx);\n    if (!gctx->key_set)\n        return -1;\n    if (gctx->tls_aad_len >= 0)\n        return aria_gcm_tls_cipher(ctx, out, in, len);\n    if (!gctx->iv_set)\n        return -1;\n    if (in) {\n        if (out == NULL) {\n            if (CRYPTO_gcm128_aad(&gctx->gcm, in, len))\n                return -1;\n        } else if (EVP_CIPHER_CTX_encrypting(ctx)) {\n            if (CRYPTO_gcm128_encrypt(&gctx->gcm, in, out, len))\n                return -1;\n        } else {\n            if (CRYPTO_gcm128_decrypt(&gctx->gcm, in, out, len))\n                return -1;\n        }\n        return len;\n    }\n    if (!EVP_CIPHER_CTX_encrypting(ctx)) {\n        if (gctx->taglen < 0)\n            return -1;\n        if (CRYPTO_gcm128_finish(&gctx->gcm,\n                                 EVP_CIPHER_CTX_buf_noconst(ctx),\n                                 gctx->taglen) != 0)\n            return -1;\n        gctx->iv_set = 0;\n        return 0;\n    }\n    CRYPTO_gcm128_tag(&gctx->gcm, EVP_CIPHER_CTX_buf_noconst(ctx), 16);\n    gctx->taglen = 16;\n    gctx->iv_set = 0;\n    return 0;\n}', 'void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len)\n{\n    CRYPTO_gcm128_finish(ctx, NULL, 0);\n    memcpy(tag, ctx->Xi.c,\n           len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));\n}']