crypto/ec/ecp_oct.c:119: error: BUFFER_OVERRUN_L3
  Offset added: [8, +oo] Size: [0, 536870848] by call to `BN_kronecker`.
Showing all 22 steps of the trace


crypto/ec/ecp_oct.c:16:1: Parameter `group->field->top`
14.   #include "ec_lcl.h"
15.   
16. > int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group,
17.                                                EC_POINT *point,
18.                                                const BIGNUM *x_, int y_bit,

crypto/ec/ecp_oct.c:51:10: Call
49.   
50.       /* tmp1 := x^3 */
51.       if (!BN_nnmod(x, x_, group->field, ctx))
               ^
52.           goto err;
53.       if (group->meth->field_decode == 0) {

crypto/bn/bn_mod.c:13:1: Parameter `d->top`
  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:214:9: Call
    212.       int ret;
    213.   
    214.       if (BN_is_zero(divisor)) {
                   ^
    215.           BNerr(BN_F_BN_DIV, BN_R_DIV_BY_ZERO);
    216.           return 0;

crypto/bn/bn_lib.c:843:1: Parameter `a->top`
      841.   }
      842.   
      843. > int BN_is_zero(const BIGNUM *a)
      844.   {
      845.       return a->top == 0;

crypto/ec/ecp_oct.c:101:10: Call
99.       }
100.   
101.       if (!BN_mod_sqrt(y, tmp1, group->field, ctx)) {
                ^
102.           unsigned long err = ERR_peek_last_error();
103.   

crypto/bn/bn_sqrt.c:13:1: Parameter `p->top`
  11.   #include "bn_lcl.h"
  12.   
  13. > BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
  14.   /*
  15.    * Returns 'ret' such that ret^2 == a (mod p), using the Tonelli/Shanks

crypto/bn/bn_sqrt.c:26:10: Call
  24.       int e, i, j;
  25.   
  26.       if (!BN_is_odd(p) || BN_abs_is_word(p, 1)) {
                 ^
  27.           if (BN_abs_is_word(p, 2)) {
  28.               if (ret == NULL)

crypto/bn/bn_lib.c:858:1: Parameter `a->top`
    856.   }
    857.   
    858. > int BN_is_odd(const BIGNUM *a)
    859.   {
    860.       return (a->top > 0) && (a->d[0] & 1);

crypto/bn/bn_sqrt.c:26:26: Call
  24.       int e, i, j;
  25.   
  26.       if (!BN_is_odd(p) || BN_abs_is_word(p, 1)) {
                                 ^
  27.           if (BN_abs_is_word(p, 2)) {
  28.               if (ret == NULL)

crypto/bn/bn_lib.c:838:1: Parameter `a->top`
    836.   }
    837.   
    838. > int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w)
    839.   {
    840.       return ((a->top == 1) && (a->d[0] == w)) || ((w == 0) && (a->top == 0));

crypto/ec/ecp_oct.c:119:20: Call
117.               int kron;
118.   
119.               kron = BN_kronecker(x, group->field, ctx);
                          ^
120.               if (kron == -2)
121.                   goto err;

crypto/bn/bn_kron.c:17:1: Parameter `b->top`
  15.   
  16.   /* Returns -2 for errors because both -1 and 0 are valid results. */
  17. > int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  18.   {
  19.       int i;

crypto/bn/bn_kron.c:44:12: Call
  42.       if (err)
  43.           goto end;
  44.       err = !BN_copy(B, b);
                   ^
  45.       if (err)
  46.           goto end;

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

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

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

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

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

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

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