crypto/bn/bn_prime.c:272: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mod_mul`.
Showing all 22 steps of the trace


crypto/bn/bn_prime.c:261:1: Parameter `ctx->stack.depth`
259.   }
260.   
261. > static int witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1,
262.                      const BIGNUM *a1_odd, int k, BN_CTX *ctx,
263.                      BN_MONT_CTX *mont)

crypto/bn/bn_prime.c:265:10: Call
263.                      BN_MONT_CTX *mont)
264.   {
265.       if (!BN_mod_exp_mont(w, w, a1_odd, a, ctx, mont)) /* w := w^a1_odd mod a */
                ^
266.           return -1;
267.       if (BN_is_one(w))

crypto/bn/bn_exp.c:294:1: Parameter `ctx->stack.depth`
  292.   }
  293.   
  294. > int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,
  295.                       const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
  296.   {

crypto/bn/bn_prime.c:272:14: Call
270.           return 0;               /* w == -1 (mod a), 'a' is probably prime */
271.       while (--k) {
272.           if (!BN_mod_mul(w, w, w, a, ctx)) /* w := w^2 mod a */
                    ^
273.               return -1;
274.           if (BN_is_one(w))

crypto/bn/bn_mod.c:73:1: Parameter `ctx->stack.depth`
  71.   
  72.   /* slow but works */
  73. > int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m,
  74.                  BN_CTX *ctx)
  75.   {

crypto/bn/bn_mod.c:83:5: Call
  81.       bn_check_top(m);
  82.   
  83.       BN_CTX_start(ctx);
            ^
  84.       if ((t = BN_CTX_get(ctx)) == NULL)
  85.           goto err;

crypto/bn/bn_ctx.c:181:1: Parameter `ctx->stack.depth`
    179.   }
    180.   
    181. > void BN_CTX_start(BN_CTX *ctx)
    182.   {
    183.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_mod.c:87:14: Call
  85.           goto err;
  86.       if (a == b) {
  87.           if (!BN_sqr(t, a, ctx))
                     ^
  88.               goto err;
  89.       } else {

crypto/bn/bn_sqr.c:17:1: Parameter `ctx->stack.depth`
    15.    * I've just gone over this and it is now %20 faster on x86 - eay - 27 Jun 96
    16.    */
    17. > int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
    18.   {
    19.       int max, al;

crypto/bn/bn_mod.c:93:10: Call
  91.               goto err;
  92.       }
  93.       if (!BN_nnmod(r, t, m, ctx))
                 ^
  94.           goto err;
  95.       bn_check_top(r);

crypto/bn/bn_mod.c:13:1: Parameter `ctx->stack.depth`
    11.   #include "bn_lcl.h"
    12.   
    13. > int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
    14.   {
    15.       /*

crypto/bn/bn_mod.c:20:11: Call
    18.        */
    19.   
    20.       if (!(BN_mod(r, m, d, ctx)))
                    ^
    21.           return 0;
    22.       if (!r->neg)

crypto/bn/bn_div.c:193:5: Call
      191.       }
      192.   
      193.       BN_CTX_start(ctx);
                 ^
      194.       tmp = BN_CTX_get(ctx);
      195.       snum = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:181:1: Parameter `*ctx->stack.indexes`
        179.   }
        180.   
        181. > void BN_CTX_start(BN_CTX *ctx)
        182.   {
        183.       CTXDBG_ENTRY("BN_CTX_start", ctx);

crypto/bn/bn_div.c:416:5: Call
      414.       if (no_branch)
      415.           bn_correct_top(res);
      416.       BN_CTX_end(ctx);
                 ^
      417.       return (1);
      418.    err:

crypto/bn/bn_ctx.c:195:1: Parameter `*ctx->stack.indexes`
        193.   }
        194.   
        195. > void BN_CTX_end(BN_CTX *ctx)
        196.   {
        197.       CTXDBG_ENTRY("BN_CTX_end", ctx);

crypto/bn/bn_ctx.c:201:27: Call
        199.           ctx->err_stack--;
        200.       else {
        201.           unsigned int fp = BN_STACK_pop(&ctx->stack);
                                         ^
        202.           /* Does this stack frame have anything to release? */
        203.           if (fp < ctx->used)

crypto/bn/bn_ctx.c:271:1: <Offset trace>
269.   }
270.   
271. > static unsigned int BN_STACK_pop(BN_STACK *st)
272.   {
273.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:271:1: Parameter `st->depth`
          269.   }
          270.   
          271. > static unsigned int BN_STACK_pop(BN_STACK *st)
          272.   {
          273.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:271:1: <Length trace>
269.   }
270.   
271. > static unsigned int BN_STACK_pop(BN_STACK *st)
272.   {
273.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:271:1: Parameter `*st->indexes`
          269.   }
          270.   
          271. > static unsigned int BN_STACK_pop(BN_STACK *st)
          272.   {
          273.       return st->indexes[--(st->depth)];

crypto/bn/bn_ctx.c:273:12: Array access: Offset: [-1, +oo] Size: [1, +oo] by call to `BN_mod_mul` 
          271.   static unsigned int BN_STACK_pop(BN_STACK *st)
          272.   {
          273.       return st->indexes[--(st->depth)];
                            ^
          274.   }
          275.   
