crypto/ec/ec2_oct.c:362: error: BUFFER_OVERRUN_L3
  Offset: [31, +oo] Size: [0, 8388607] by call to `EC_POINT_set_compressed_coordinates_GF2m`.
Showing all 23 steps of the trace


crypto/ec/ec2_oct.c:354:10: Call
352.           goto err;
353.   
354.       if (!BN_bin2bn(buf + 1, field_len, x))
                ^
355.           goto err;
356.       if (BN_ucmp(x, group->field) >= 0) {

crypto/bn/bn_lib.c:532:1: Parameter `ret->top`
  530.   }
  531.   
  532. > BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
  533.   {
  534.       unsigned int i, m;

crypto/ec/ec2_oct.c:362:14: Call
360.   
361.       if (form == POINT_CONVERSION_COMPRESSED) {
362.           if (!EC_POINT_set_compressed_coordinates_GF2m
                    ^
363.               (group, point, x, y_bit, ctx))
364.               goto err;

crypto/ec/ec_oct.c:106:1: Parameter `x->top`
  104.   
  105.   #ifndef OPENSSL_NO_EC2M
  106. > int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,
  107.                                                EC_POINT *point, const BIGNUM *x,
  108.                                                int y_bit, BN_CTX *ctx)

crypto/ec/ec_oct.c:123:20: Call
  121.       if (group->meth->flags & EC_FLAGS_DEFAULT_OCT) {
  122.           if (group->meth->field_type == NID_X9_62_prime_field)
  123.               return ec_GFp_simple_set_compressed_coordinates(group, point, x,
                            ^
  124.                                                               y_bit, ctx);
  125.           else

crypto/ec/ecp_oct.c:91:12: Call
    89.   
    90.       BN_CTX_start(ctx);
    91.       tmp1 = BN_CTX_get(ctx);
                     ^
    92.       tmp2 = BN_CTX_get(ctx);
    93.       x = BN_CTX_get(ctx);

crypto/bn/bn_ctx.c:275:5: Call
      273.       }
      274.       /* OK, make sure the returned bignum is "zero" */
      275.       BN_zero(ret);
                 ^
      276.       ctx->used++;
      277.       CTXDBG_RET(ctx, ret);

crypto/bn/bn_lib.c:520:1: Parameter `*a->d`
        518.   }
        519.   
        520. > int BN_set_word(BIGNUM *a, BN_ULONG w)
        521.   {
        522.       bn_check_top(a);

crypto/bn/bn_lib.c:523:9: Call
        521.   {
        522.       bn_check_top(a);
        523.       if (bn_expand(a, (int)sizeof(BN_ULONG) * 8) == NULL)
                       ^
        524.           return (0);
        525.       a->neg = 0;

crypto/bn/bn_lcl.h:777:1: Parameter `*a->d`
          775.   int bn_probable_prime_dh_coprime(BIGNUM *rnd, int bits, BN_CTX *ctx);
          776.   
          777. > static ossl_inline BIGNUM *bn_expand(BIGNUM *a, int bits)
          778.   {
          779.       if (bits > (INT_MAX - BN_BITS2 + 1))

crypto/ec/ecp_oct.c:114:14: Call
    112.               goto err;
    113.       } else {
    114.           if (!BN_mod_sqr(tmp2, x_, group->field, ctx))
                        ^
    115.               goto err;
    116.           if (!BN_mod_mul(tmp1, tmp2, x_, group->field, ctx))

crypto/bn/bn_mod.c:207:1: Parameter `*r->d`
      205.   }
      206.   
      207. > int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx)
      208.   {
      209.       if (!BN_sqr(r, a, ctx))

crypto/bn/bn_mod.c:209:10: Call
      207.   int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx)
      208.   {
      209.       if (!BN_sqr(r, a, ctx))
                      ^
      210.           return 0;
      211.       /* r->neg == 0,  thus we don't need BN_nnmod */

crypto/bn/bn_sqr.c:65:1: Parameter `a->top`
        63.    * I've just gone over this and it is now %20 faster on x86 - eay - 27 Jun 96
        64.    */
        65. > int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
        66.   {
        67.       int max, al;

crypto/bn/bn_sqr.c:73:5: Assignment
        71.       bn_check_top(a);
        72.   
        73.       al = a->top;
                  ^
        74.       if (al <= 0) {
        75.           r->top = 0;

crypto/bn/bn_sqr.c:122:17: Call
        120.                   if (bn_wexpand(tmp, max) == NULL)
        121.                       goto err;
        122.                   bn_sqr_normal(rr->d, a->d, al, tmp->d);
                               ^
        123.               }
        124.           }

crypto/bn/bn_sqr.c:152:1: <Offset trace>
150.   
151.   /* tmp must have 2*n words */
152. > void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
153.   {
154.       int i, j, max;

crypto/bn/bn_sqr.c:152:1: Parameter `n`
          150.   
          151.   /* tmp must have 2*n words */
          152. > void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
          153.   {
          154.       int i, j, max;

crypto/bn/bn_sqr.c:158:5: Assignment
          156.       BN_ULONG *rp;
          157.   
          158.       max = n * 2;
                     ^
          159.       ap = a;
          160.       rp = r;

crypto/bn/bn_sqr.c:152:1: <Length trace>
150.   
151.   /* tmp must have 2*n words */
152. > void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
153.   {
154.       int i, j, max;

crypto/bn/bn_sqr.c:152:1: Parameter `*r`
          150.   
          151.   /* tmp must have 2*n words */
          152. > void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
          153.   {
          154.       int i, j, max;

crypto/bn/bn_sqr.c:160:5: Assignment
          158.       max = n * 2;
          159.       ap = a;
          160.       rp = r;
                     ^
          161.       rp[0] = rp[max - 1] = 0;
          162.       rp++;

crypto/bn/bn_sqr.c:161:13: Array access: Offset: [31, +oo] Size: [0, 8388607] by call to `EC_POINT_set_compressed_coordinates_GF2m` 
          159.       ap = a;
          160.       rp = r;
          161.       rp[0] = rp[max - 1] = 0;
                             ^
          162.       rp++;
          163.       j = n;
