crypto/dh/dh_check.c:165: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mod_exp`.
Showing all 21 steps of the trace


crypto/dh/dh_check.c:152:5: Call
150.       if (ctx == NULL)
151.           goto err;
152.       BN_CTX_start(ctx);
           ^
153.       tmp = BN_CTX_get(ctx);
154.       if (tmp == NULL || !BN_set_word(tmp, 1))

crypto/bn/bn_ctx.c:235:1: Parameter `ctx->stack.depth`
  233.   }
  234.   
  235. > void BN_CTX_start(BN_CTX *ctx)
  236.   {
  237.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/dh/dh_check.c:165:14: Call
163.       if (dh->q != NULL) {
164.           /* Check pub_key^q == 1 mod p */
165.           if (!BN_mod_exp(tmp, pub_key, dh->q, dh->p, ctx))
                    ^
166.               goto err;
167.           if (!BN_is_one(tmp))

crypto/bn/bn_exp.c:190:1: Parameter `ctx->stack.depth`
  188.   }
  189.   
  190. > int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
  191.                  BN_CTX *ctx)
  192.   {

crypto/bn/bn_exp.c:255:15: Call
  253.   #ifdef RECP_MUL_MOD
  254.       {
  255.           ret = BN_mod_exp_recp(r, a, p, m, ctx);
                       ^
  256.       }
  257.   #else

crypto/bn/bn_exp.c:267:1: Parameter `ctx->stack.depth`
    265.   }
    266.   
    267. > int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
    268.                       const BIGNUM *m, BN_CTX *ctx)
    269.   {

crypto/bn/bn_exp.c:295:5: Call
    293.       }
    294.   
    295.       BN_CTX_start(ctx);
               ^
    296.       aa = BN_CTX_get(ctx);
    297.       val[0] = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:235:1: Parameter `ctx->stack.depth`
      233.   }
      234.   
      235. > void BN_CTX_start(BN_CTX *ctx)
      236.   {
      237.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_exp.c:314:10: Call
    312.       }
    313.   
    314.       if (!BN_nnmod(val[0], a, m, ctx))
                    ^
    315.           goto err;               /* 1 */
    316.       if (BN_is_zero(val[0])) {

crypto/bn/bn_mod.c:118:1: Parameter `ctx->stack.depth`
      116.   #include "bn_lcl.h"
      117.   
      118. > int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
      119.   {
      120.       /*

crypto/bn/bn_mod.c:125:11: Call
      123.        */
      124.   
      125.       if (!(BN_mod(r, m, d, ctx)))
                       ^
      126.           return 0;
      127.       if (!r->neg)

crypto/bn/bn_div.c:241:5: Call
        239.       }
        240.   
        241.       BN_CTX_start(ctx);
                   ^
        242.       tmp = BN_CTX_get(ctx);
        243.       snum = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:235:1: Parameter `*ctx->stack.indexes`
          233.   }
          234.   
          235. > void BN_CTX_start(BN_CTX *ctx)
          236.   {
          237.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_div.c:468:5: Call
        466.       if (no_branch)
        467.           bn_correct_top(res);
        468.       BN_CTX_end(ctx);
                   ^
        469.       return (1);
        470.    err:

crypto/bn/bn_ctx.c:249:1: Parameter `*ctx->stack.indexes`
          247.   }
          248.   
          249. > void BN_CTX_end(BN_CTX *ctx)
          250.   {
          251.       CTXDBG_ENTRY("BN_CTX_end", ctx);

crypto/bn/bn_ctx.c:255:27: Call
          253.           ctx->err_stack--;
          254.       else {
          255.           unsigned int fp = BN_STACK_pop(&ctx->stack);
                                           ^
          256.           /* Does this stack frame have anything to release? */
          257.           if (fp < ctx->used)

crypto/bn/bn_ctx.c:325:1: <Offset trace>
323.   }
324.   
325. > static unsigned int BN_STACK_pop(BN_STACK *st)
326.   {
327.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:325:1: Parameter `st->depth`
            323.   }
            324.   
            325. > static unsigned int BN_STACK_pop(BN_STACK *st)
            326.   {
            327.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:325:1: <Length trace>
323.   }
324.   
325. > static unsigned int BN_STACK_pop(BN_STACK *st)
326.   {
327.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:325:1: Parameter `*st->indexes`
            323.   }
            324.   
            325. > static unsigned int BN_STACK_pop(BN_STACK *st)
            326.   {
            327.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:327:12: Array access: Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mod_exp` 
            325.   static unsigned int BN_STACK_pop(BN_STACK *st)
            326.   {
            327.       return st->indexes[--(st->depth)];
                              ^
            328.   }
            329.   
