crypto/jpake/jpake.c:375: error: INTEGER_OVERFLOW_L2
  ([0, `ctx->xb->top`] - 1):unsigned64 by call to `BN_mod_exp`.
Showing all 13 steps of the trace


crypto/jpake/jpake.c:352:1: Parameter `ctx->xb->top`
350.   
351.   /* gx = g^{xc + xa + xb} * xd * s */
352. > static int compute_key(JPAKE_CTX *ctx, const BIGNUM *gx)
353.       {
354.       BIGNUM *t1 = BN_new();

crypto/jpake/jpake.c:367:5: Call
365.   
366.      /* t1 = (g^{xd})^{xb} = g^{xb * xd} */
367.       BN_mod_exp(t1, ctx->p.gxd, ctx->xb, ctx->p.p, ctx->ctx);
           ^
368.      /* t2 = -s = q-s */
369.       BN_sub(t2, ctx->p.q, ctx->secret);

crypto/bn/bn_exp.c:163:1: Parameter `p->top`
  161.   
  162.   
  163. > int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
  164.   	       BN_CTX *ctx)
  165.   	{

crypto/bn/bn_exp.c:219:8: Call
  217.   			{
  218.   			BN_ULONG A = a->d[0];
  219.   			ret=BN_mod_exp_mont_word(r,A,p,m,ctx,NULL);
                ^
  220.   			}
  221.   		else

crypto/bn/bn_exp.c:727:1: Parameter `p->top`
    725.   	}
    726.   
    727. > int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,
    728.                            const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
    729.   	{

crypto/jpake/jpake.c:375:5: Call
373.       BN_mod_mul(t1, gx, t3, ctx->p.p, ctx->ctx);
374.      /* K = t1^{xb} */
375.       BN_mod_exp(ctx->key, t1, ctx->xb, ctx->p.p, ctx->ctx);
           ^
376.   
377.      /* cleanup */

crypto/bn/bn_exp.c:163:1: Parameter `p->top`
  161.   
  162.   
  163. > int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
  164.   	       BN_CTX *ctx)
  165.   	{

crypto/bn/bn_exp.c:219:8: Call
  217.   			{
  218.   			BN_ULONG A = a->d[0];
  219.   			ret=BN_mod_exp_mont_word(r,A,p,m,ctx,NULL);
                ^
  220.   			}
  221.   		else

crypto/bn/bn_exp.c:727:1: Parameter `p->top`
    725.   	}
    726.   
    727. > int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,
    728.                            const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)
    729.   	{

crypto/bn/bn_exp.c:769:9: Call
    767.   		a %= m->d[0]; /* make sure that 'a' is reduced */
    768.   
    769.   	bits = BN_num_bits(p);
                   ^
    770.   	if (bits == 0)
    771.   		{

crypto/bn/bn_lib.c:248:1: <LHS trace>
246.   	}
247.   
248. > int BN_num_bits(const BIGNUM *a)
249.   	{
250.   	int i = a->top - 1;

crypto/bn/bn_lib.c:248:1: Parameter `a->top`
      246.   	}
      247.   
      248. > int BN_num_bits(const BIGNUM *a)
      249.   	{
      250.   	int i = a->top - 1;

crypto/bn/bn_lib.c:250:2: Binary operation: ([0, ctx->xb->top] - 1):unsigned64 by call to `BN_mod_exp` 
      248.   int BN_num_bits(const BIGNUM *a)
      249.   	{
      250.   	int i = a->top - 1;
              ^
      251.   	bn_check_top(a);
      252.   
