crypto/bn/bn_lib.c:663: error: INTEGER_OVERFLOW_L2
  ([min(0, `len`), `len`] - 1):unsigned32.
Showing all 4 steps of the trace


crypto/bn/bn_lib.c:641:1: <LHS trace>
639.   	}
640.   
641. > BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
642.   	{
643.   	unsigned int i,m;

crypto/bn/bn_lib.c:641:1: Parameter `len`
639.   	}
640.   
641. > BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
642.   	{
643.   	unsigned int i,m;

crypto/bn/bn_lib.c:651:2: Assignment
649.   	bn_check_top(ret);
650.   	l=0;
651.   	n=len;
        ^
652.   	if (n == 0)
653.   		{

crypto/bn/bn_lib.c:663:9: Binary operation: ([min(0, len), len] - 1):unsigned32
661.   	ret->top=i;
662.   	ret->neg=0;
663.   	while (n-- > 0)
               ^
664.   		{
665.   		l=(l<<8L)| *(s++);

BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
	{
	unsigned int i,m;
	unsigned int n;
	BN_ULONG l;
	if (ret == NULL) ret=BN_new();
	if (ret == NULL) return(NULL);
	bn_check_top(ret);
	l=0;
	n=len;
	if (n == 0)
		{
		ret->top=0;
		return(ret);
		}
	if (bn_expand(ret,(int)(n+2)*8) == NULL)
		return(NULL);
	i=((n-1)/BN_BYTES)+1;
	m=((n-1)%(BN_BYTES));
	ret->top=i;
	ret->neg=0;
	while (n-- > 0)
		{
		l=(l<<8L)| *(s++);
		if (m-- == 0)
			{
			ret->d[--i]=l;
			l=0;
			m=BN_BYTES-1;
			}
		}
	bn_correct_top(ret);
	return(ret);
	}
['BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)\n\t{\n\tunsigned int i,m;\n\tunsigned int n;\n\tBN_ULONG l;\n\tif (ret == NULL) ret=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\tif (bn_expand(ret,(int)(n+2)*8) == NULL)\n\t\treturn(NULL);\n\ti=((n-1)/BN_BYTES)+1;\n\tm=((n-1)%(BN_BYTES));\n\tret->top=i;\n\tret->neg=0;\n\twhile (n-- > 0)\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}']