crypto/srp/srp_lib.c:202: error: BUFFER_OVERRUN_L3
  Offset added: [8, +oo] Size: [0, 536870848] by call to `BN_mod_exp`.
Showing all 18 steps of the trace


crypto/srp/srp_lib.c:193:10: Call
191.       if ((k = srp_Calc_k(N, g)) == NULL)
192.           goto err;
193.       if (!BN_mod_mul(tmp2, tmp, k, N, bn_ctx))
                ^
194.           goto err;
195.       if (!BN_mod_sub(tmp, B, tmp2, N, bn_ctx))

crypto/bn/bn_mod.c:73:1: Parameter `r->top`
  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/srp/srp_lib.c:202:23: Call
200.           goto err;
201.       K = BN_new();
202.       if (K != NULL && !BN_mod_exp(K, tmp, tmp2, N, bn_ctx)) {
                             ^
203.           BN_free(K);
204.           K = NULL;

crypto/bn/bn_exp.c:89:1: Parameter `a->top`
  87.   }
  88.   
  89. > int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
  90.                  BN_CTX *ctx)
  91.   {

crypto/bn/bn_exp.c:144:19: Call
  142.           } else
  143.   # endif
  144.               ret = BN_mod_exp_mont(r, a, p, m, ctx, NULL);
                           ^
  145.       } else
  146.   #endif

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

crypto/bn/bn_exp.c:354:14: Call
    352.   
    353.       if (a->neg || BN_ucmp(a, m) >= 0) {
    354.           if (!BN_nnmod(val[0], a, m, ctx))
                        ^
    355.               goto err;
    356.           aa = val[0];

crypto/bn/bn_mod.c:13:1: Parameter `*r->d`
      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:137:1: Parameter `*rm->d`
        135.    * If 'dv' or 'rm' is NULL, the respective value is not returned.
        136.    */
        137. > int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
        138.              BN_CTX *ctx)
        139.   {

crypto/bn/bn_div.c:182:17: Call
        180.       if (!no_branch && BN_ucmp(num, divisor) < 0) {
        181.           if (rm != NULL) {
        182.               if (BN_copy(rm, num) == NULL)
                               ^
        183.                   return 0;
        184.           }

crypto/bn/bn_lib.c:280:1: <Offset trace>
278.   }
279.   
280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
281.   {
282.       bn_check_top(b);

crypto/bn/bn_lib.c:280:1: Parameter `b->top`
          278.   }
          279.   
          280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
          281.   {
          282.       bn_check_top(b);

crypto/bn/bn_lib.c:280:1: <Length trace>
278.   }
279.   
280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
281.   {
282.       bn_check_top(b);

crypto/bn/bn_lib.c:280:1: Parameter `*a->d`
          278.   }
          279.   
          280. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
          281.   {
          282.       bn_check_top(b);

crypto/bn/bn_lib.c:286:9: Call
          284.       if (a == b)
          285.           return a;
          286.       if (bn_wexpand(a, b->top) == NULL)
                         ^
          287.           return NULL;
          288.   

crypto/bn/bn_lib.c:942:1: Parameter `*a->d`
            940.   }
            941.   
            942. > BIGNUM *bn_wexpand(BIGNUM *a, int words)
            943.   {
            944.       return (words <= a->dmax) ? a : bn_expand2(a, words);

crypto/bn/bn_lib.c:290:9: Array access: Offset added: [8, +oo] Size: [0, 536870848] by call to `BN_mod_exp` 
          288.   
          289.       if (b->top > 0)
          290.           memcpy(a->d, b->d, sizeof(b->d[0]) * b->top);
                         ^
          291.   
          292.       a->neg = b->neg;
