test/ectest.c:913: error: BUFFER_OVERRUN_L3
  Offset added: [8, +oo] Size: [0, 536870848] by call to `EC_POINTs_mul`.
Showing all 19 steps of the trace


test/ectest.c:822:13: Call
820.           || !TEST_ptr(z = BN_new())
821.           || !TEST_ptr(yplusone = BN_new())
822.           || !TEST_true(BN_hex2bn(&p, test->p))
                   ^
823.           || !TEST_true(BN_hex2bn(&a, test->a))
824.           || !TEST_true(BN_hex2bn(&b, test->b))

crypto/bn/bn_print.c:126:1: Parameter `(*bn)->top`
  124.   }
  125.   
  126. > int BN_hex2bn(BIGNUM **bn, const char *a)
  127.   {
  128.       BIGNUM *ret = NULL;

test/ectest.c:905:17: Call
903.           if (!TEST_true(BN_add(y, z, BN_value_one()))
904.               || !TEST_BN_even(y)
905.               || !TEST_true(BN_rshift1(y, y)))
                       ^
906.               goto err;
907.           scalars[0] = y;         /* (group order + 1)/2, so y*Q + y*Q = Q */

crypto/bn/bn_shift.c:54:9: Call
  52.       bn_check_top(a);
  53.   
  54.       if (BN_is_zero(a)) {
                ^
  55.           BN_zero(r);
  56.           return 1;

crypto/bn/bn_lib.c:827:1: Parameter `a->top`
    825.   }
    826.   
    827. > int BN_is_zero(const BIGNUM *a)
    828.   {
    829.       return a->top == 0;

test/ectest.c:913:14: Call
911.   
912.           /* z is still the group order */
913.           if (!TEST_true(EC_POINTs_mul(group, P, NULL, 2, points, scalars, ctx))
                    ^
914.               || !TEST_true(EC_POINTs_mul(group, R, z, 2, points, scalars, ctx))
915.               || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx))

crypto/ec/ec_lib.c:911:1: Parameter `scalar->top`
  909.    */
  910.   
  911. > int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
  912.                     size_t num, const EC_POINT *points[],
  913.                     const BIGNUM *scalars[], BN_CTX *ctx)

crypto/ec/ec_lib.c:917:16: Call
  915.       if (group->meth->mul == 0)
  916.           /* use default */
  917.           return ec_wNAF_mul(group, r, scalar, num, points, scalars, ctx);
                        ^
  918.   
  919.       return group->meth->mul(group, r, scalar, num, points, scalars, ctx);

crypto/ec/ec_mult.c:346:1: Parameter `scalar->top`
    344.    * in the addition if scalar != NULL
    345.    */
    346. > int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
    347.                   size_t num, const EC_POINT *points[], const BIGNUM *scalars[],
    348.                   BN_CTX *ctx)

crypto/ec/ec_mult.c:388:16: Call
    386.            * constant time version.
    387.            */
    388.           return ec_mul_consttime(group, r, scalar, NULL, ctx);
                          ^
    389.       }
    390.       if ((scalar == NULL) && (num == 1)) {

crypto/ec/ec_mult.c:131:1: Parameter `scalar->top`
      129.    * Returns 1 on success, 0 otherwise.
      130.    */
      131. > static int ec_mul_consttime(const EC_GROUP *group, EC_POINT *r,
      132.                               const BIGNUM *scalar, const EC_POINT *point,
      133.                               BN_CTX *ctx)

crypto/ec/ec_mult.c:183:10: Call
      181.           goto err;
      182.   
      183.       if (!BN_copy(k, scalar))
                      ^
      184.           goto err;
      185.   

crypto/bn/bn_lib.c:285:1: <Offset trace>
283.   }
284.   
285. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
286.   {
287.       bn_check_top(b);

crypto/bn/bn_lib.c:285:1: Parameter `b->top`
        283.   }
        284.   
        285. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
        286.   {
        287.       bn_check_top(b);

crypto/bn/bn_lib.c:285:1: <Length trace>
283.   }
284.   
285. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
286.   {
287.       bn_check_top(b);

crypto/bn/bn_lib.c:285:1: Parameter `*a->d`
        283.   }
        284.   
        285. > BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
        286.   {
        287.       bn_check_top(b);

crypto/bn/bn_lib.c:291:9: Call
        289.       if (a == b)
        290.           return a;
        291.       if (bn_wexpand(a, b->top) == NULL)
                       ^
        292.           return NULL;
        293.   

crypto/bn/bn_lib.c:923:1: Parameter `*a->d`
          921.   }
          922.   
          923. > BIGNUM *bn_wexpand(BIGNUM *a, int words)
          924.   {
          925.       return (words <= a->dmax) ? a : bn_expand2(a, words);

crypto/bn/bn_lib.c:295:9: Array access: Offset added: [8, +oo] Size: [0, 536870848] by call to `EC_POINTs_mul` 
        293.   
        294.       if (b->top > 0)
        295.           memcpy(a->d, b->d, sizeof(b->d[0]) * b->top);
                       ^
        296.   
        297.       a->top = b->top;
