crypto/bn/bn_word.c:168: error: INTEGER_OVERFLOW_L2
  ([0, max(4294967295, `*a->d`)] - [1, 4294967295]):unsigned64.
Showing all 5 steps of the trace


crypto/bn/bn_word.c:139:1: <LHS trace>
137.   	}
138.   
139. > int BN_sub_word(BIGNUM *a, BN_ULONG w)
140.   	{
141.   	int i;

crypto/bn/bn_word.c:139:1: Parameter `*a->d`
137.   	}
138.   
139. > int BN_sub_word(BIGNUM *a, BN_ULONG w)
140.   	{
141.   	int i;

crypto/bn/bn_word.c:139:1: <RHS trace>
137.   	}
138.   
139. > int BN_sub_word(BIGNUM *a, BN_ULONG w)
140.   	{
141.   	int i;

crypto/bn/bn_word.c:139:1: Parameter `*a->d`
137.   	}
138.   
139. > int BN_sub_word(BIGNUM *a, BN_ULONG w)
140.   	{
141.   	int i;

crypto/bn/bn_word.c:168:4: Binary operation: ([0, max(4294967295, *a->d)] - [1, 4294967295]):unsigned64
166.   		else
167.   			{
168.   			a->d[i]=(a->d[i]-w)&BN_MASK2;
          ^
169.   			i++;
170.   			w=1;

int BN_sub_word(BIGNUM *a, BN_ULONG w)
	{
	int i;
	if (a->neg)
		{
		a->neg=0;
		i=BN_add_word(a,w);
		a->neg=1;
		return(i);
		}
	w&=BN_MASK2;
	if ((a->top == 1) && (a->d[0] < w))
		{
		a->d[0]=w-a->d[0];
		a->neg=1;
		return(1);
		}
	i=0;
	for (;;)
		{
		if (a->d[i] >= w)
			{
			a->d[i]-=w;
			break;
			}
		else
			{
			a->d[i]=(a->d[i]-w)&BN_MASK2;
			i++;
			w=1;
			}
		}
	if ((a->d[i] == 0) && (i == (a->top-1)))
		a->top--;
	return(1);
	}
['int BN_sub_word(BIGNUM *a, BN_ULONG w)\n\t{\n\tint i;\n\tif (a->neg)\n\t\t{\n\t\ta->neg=0;\n\t\ti=BN_add_word(a,w);\n\t\ta->neg=1;\n\t\treturn(i);\n\t\t}\n\tw&=BN_MASK2;\n\tif ((a->top == 1) && (a->d[0] < w))\n\t\t{\n\t\ta->d[0]=w-a->d[0];\n\t\ta->neg=1;\n\t\treturn(1);\n\t\t}\n\ti=0;\n\tfor (;;)\n\t\t{\n\t\tif (a->d[i] >= w)\n\t\t\t{\n\t\t\ta->d[i]-=w;\n\t\t\tbreak;\n\t\t\t}\n\t\telse\n\t\t\t{\n\t\t\ta->d[i]=(a->d[i]-w)&BN_MASK2;\n\t\t\ti++;\n\t\t\tw=1;\n\t\t\t}\n\t\t}\n\tif ((a->d[i] == 0) && (i == (a->top-1)))\n\t\ta->top--;\n\treturn(1);\n\t}']