crypto/ec/ec2_smpl.c:695: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned64 by call to `BN_ucmp`.
Showing all 6 steps of the trace


crypto/ec/ec2_smpl.c:694:7: Call
692.   	if (yxi == NULL) goto err;
693.   
694.   	if (!BN_bin2bn(buf + 1, field_len, x)) goto err;
             ^
695.   	if (BN_ucmp(x, &group->field) >= 0)
696.   		{

crypto/bn/bn_lib.c:597:1: Parameter `ret->top`
  595.   	}
  596.   
  597. > BIGNUM *BN_bin2bn(const unsigned char *s, size_t len, BIGNUM *ret)
  598.   	{
  599.   	unsigned int i,m;

crypto/ec/ec2_smpl.c:695:6: Call
693.   
694.   	if (!BN_bin2bn(buf + 1, field_len, x)) goto err;
695.   	if (BN_ucmp(x, &group->field) >= 0)
            ^
696.   		{
697.   		ECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);

crypto/bn/bn_lib.c:656:1: <LHS trace>
654.   	}
655.   
656. > int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
657.   	{
658.   	int i;

crypto/bn/bn_lib.c:656:1: Parameter `a->top`
  654.   	}
  655.   
  656. > int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
  657.   	{
  658.   	int i;

crypto/bn/bn_lib.c:668:7: Binary operation: ([0, +oo] - 1):unsigned64 by call to `BN_ucmp` 
  666.   	ap=a->d;
  667.   	bp=b->d;
  668.   	for (i=a->top-1; i>=0; i--)
               ^
  669.   		{
  670.   		t1= ap[i];

int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
	{
	int i;
	BN_ULONG t1,t2,*ap,*bp;
	bn_check_top(a);
	bn_check_top(b);
	i=a->top-b->top;
	if (i != 0) return(i);
	ap=a->d;
	bp=b->d;
	for (i=a->top-1; i>=0; i--)
		{
		t1= ap[i];
		t2= bp[i];
		if (t1 != t2)
			return((t1 > t2) ? 1 : -1);
		}
	return(0);
	}
['int ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point,\n\tconst unsigned char *buf, size_t len, BN_CTX *ctx)\n\t{\n\tpoint_conversion_form_t form;\n\tint y_bit;\n\tBN_CTX *new_ctx = NULL;\n\tBIGNUM *x, *y, *yxi;\n\tsize_t field_len, enc_len;\n\tint ret = 0;\n\tif (len == 0)\n\t\t{\n\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_BUFFER_TOO_SMALL);\n\t\treturn 0;\n\t\t}\n\tform = buf[0];\n\ty_bit = form & 1;\n\tform = form & ~1U;\n\tif ((form != 0)\t&& (form != POINT_CONVERSION_COMPRESSED)\n\t\t&& (form != POINT_CONVERSION_UNCOMPRESSED)\n\t\t&& (form != POINT_CONVERSION_HYBRID))\n\t\t{\n\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\treturn 0;\n\t\t}\n\tif ((form == 0 || form == POINT_CONVERSION_UNCOMPRESSED) && y_bit)\n\t\t{\n\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\treturn 0;\n\t\t}\n\tif (form == 0)\n\t\t{\n\t\tif (len != 1)\n\t\t\t{\n\t\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\t\treturn 0;\n\t\t\t}\n\t\treturn EC_POINT_set_to_infinity(group, point);\n\t\t}\n\tfield_len = (EC_GROUP_get_degree(group) + 7) / 8;\n\tenc_len = (form == POINT_CONVERSION_COMPRESSED) ? 1 + field_len : 1 + 2*field_len;\n\tif (len != enc_len)\n\t\t{\n\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\treturn 0;\n\t\t}\n\tif (ctx == NULL)\n\t\t{\n\t\tctx = new_ctx = BN_CTX_new();\n\t\tif (ctx == NULL)\n\t\t\treturn 0;\n\t\t}\n\tBN_CTX_start(ctx);\n\tx = BN_CTX_get(ctx);\n\ty = BN_CTX_get(ctx);\n\tyxi = BN_CTX_get(ctx);\n\tif (yxi == NULL) goto err;\n\tif (!BN_bin2bn(buf + 1, field_len, x)) goto err;\n\tif (BN_ucmp(x, &group->field) >= 0)\n\t\t{\n\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\tgoto err;\n\t\t}\n\tif (form == POINT_CONVERSION_COMPRESSED)\n\t\t{\n\t\tif (!EC_POINT_set_compressed_coordinates_GF2m(group, point, x, y_bit, ctx)) goto err;\n\t\t}\n\telse\n\t\t{\n\t\tif (!BN_bin2bn(buf + 1 + field_len, field_len, y)) goto err;\n\t\tif (BN_ucmp(y, &group->field) >= 0)\n\t\t\t{\n\t\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\t\tgoto err;\n\t\t\t}\n\t\tif (form == POINT_CONVERSION_HYBRID)\n\t\t\t{\n\t\t\tif (!group->meth->field_div(group, yxi, y, x, ctx)) goto err;\n\t\t\tif (y_bit != BN_is_odd(yxi))\n\t\t\t\t{\n\t\t\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING);\n\t\t\t\tgoto err;\n\t\t\t\t}\n\t\t\t}\n\t\tif (!EC_POINT_set_affine_coordinates_GF2m(group, point, x, y, ctx)) goto err;\n\t\t}\n\tif (!EC_POINT_is_on_curve(group, point, ctx))\n\t\t{\n\t\tECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_POINT_IS_NOT_ON_CURVE);\n\t\tgoto err;\n\t\t}\n\tret = 1;\n err:\n\tBN_CTX_end(ctx);\n\tif (new_ctx != NULL)\n\t\tBN_CTX_free(new_ctx);\n\treturn ret;\n\t}', 'BIGNUM *BN_bin2bn(const unsigned char *s, size_t len, BIGNUM *ret)\n\t{\n\tunsigned int i,m;\n\tunsigned int n;\n\tBN_ULONG l;\n\tBIGNUM  *bn = NULL;\n\tif (ret == NULL)\n\t\tret = bn = BN_new();\n\tif (ret == NULL) return(NULL);\n\tbn_check_top(ret);\n\tl=0;\n\tn=len;\n\tif (n == 0)\n\t\t{\n\t\tret->top=0;\n\t\treturn(ret);\n\t\t}\n\ti=((n-1)/BN_BYTES)+1;\n\tm=((n-1)%(BN_BYTES));\n\tif (bn_wexpand(ret, i) == NULL)\n\t\t{\n\t\tif (bn) BN_free(bn);\n\t\treturn NULL;\n\t\t}\n\tret->top=i;\n\tret->neg=0;\n\twhile (n--)\n\t\t{\n\t\tl=(l<<8L)| *(s++);\n\t\tif (m-- == 0)\n\t\t\t{\n\t\t\tret->d[--i]=l;\n\t\t\tl=0;\n\t\t\tm=BN_BYTES-1;\n\t\t\t}\n\t\t}\n\tbn_correct_top(ret);\n\treturn(ret);\n\t}', 'int BN_ucmp(const BIGNUM *a, const BIGNUM *b)\n\t{\n\tint i;\n\tBN_ULONG t1,t2,*ap,*bp;\n\tbn_check_top(a);\n\tbn_check_top(b);\n\ti=a->top-b->top;\n\tif (i != 0) return(i);\n\tap=a->d;\n\tbp=b->d;\n\tfor (i=a->top-1; i>=0; i--)\n\t\t{\n\t\tt1= ap[i];\n\t\tt2= bp[i];\n\t\tif (t1 != t2)\n\t\t\treturn((t1 > t2) ? 1 : -1);\n\t\t}\n\treturn(0);\n\t}']