test/exptest.c:127: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mod_exp`.
Showing all 19 steps of the trace


test/exptest.c:127:10: Call
125.           goto err;
126.   
127.       if (!BN_mod_exp(r, a, p, m, ctx))
                ^
128.           goto err;
129.   

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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