crypto/bn/bn_mont.c:83: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned32 by call to `BN_CTX_end`.
Showing all 8 steps of the trace


crypto/bn/bn_mont.c:67:14: Call
65.       bn_check_top(tmp);
66.       if (a == b) {
67.           if (!bn_sqr_fixed_top(tmp, a, ctx))
                   ^
68.               goto err;
69.       } else {

crypto/bn/bn_sqr.c:27:1: Parameter `ctx->pool.used`
  25.   }
  26.   
  27. > int bn_sqr_fixed_top(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
  28.   {
  29.       int max, al;

crypto/bn/bn_mont.c:83:5: Call
81.       ret = 1;
82.    err:
83.       BN_CTX_end(ctx);
          ^
84.       return ret;
85.   }

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

crypto/bn/bn_ctx.c:204:13: Call
  202.           /* Does this stack frame have anything to release? */
  203.           if (fp < ctx->used)
  204.               BN_POOL_release(&ctx->pool, ctx->used - fp);
                     ^
  205.           ctx->used = fp;
  206.           /* Unjam "too_many" in case "get" had failed */

crypto/bn/bn_ctx.c:346:1: <LHS trace>
344.   }
345.   
346. > static void BN_POOL_release(BN_POOL *p, unsigned int num)
347.   {
348.       unsigned int offset = (p->used - 1) % BN_CTX_POOL_SIZE;

crypto/bn/bn_ctx.c:346:1: Parameter `p->used`
    344.   }
    345.   
    346. > static void BN_POOL_release(BN_POOL *p, unsigned int num)
    347.   {
    348.       unsigned int offset = (p->used - 1) % BN_CTX_POOL_SIZE;

crypto/bn/bn_ctx.c:348:5: Binary operation: ([0, +oo] - 1):unsigned32 by call to `BN_CTX_end` 
    346.   static void BN_POOL_release(BN_POOL *p, unsigned int num)
    347.   {
    348.       unsigned int offset = (p->used - 1) % BN_CTX_POOL_SIZE;
               ^
    349.   
    350.       p->used -= num;
