crypto/x509/x509_vfy.c:601: error: UNINITIALIZED_VALUE
  The value read from buff1[_] was never initialized.
Showing all 1 steps of the trace


crypto/x509/x509_vfy.c:601:3: 
599.   	if(ctm->type == V_ASN1_UTCTIME)
600.   		{
601. > 		i=(buff1[0]-'0')*10+(buff1[1]-'0');
602.   		if (i < 50) i+=100; /* cf. RFC 2459 */
603.   		j=(buff2[0]-'0')*10+(buff2[1]-'0');

int X509_cmp_current_time(ASN1_TIME *ctm)
	{
	char *str;
	ASN1_TIME atm;
	time_t offset;
	char buff1[24],buff2[24],*p;
	int i,j;
	p=buff1;
	i=ctm->length;
	str=(char *)ctm->data;
	if(ctm->type == V_ASN1_UTCTIME) {
		if ((i < 11) || (i > 17)) return(0);
		memcpy(p,str,10);
		p+=10;
		str+=10;
	} else {
		if(i < 13) return 0;
		memcpy(p,str,12);
		p+=12;
		str+=12;
	}
	if ((*str == 'Z') || (*str == '-') || (*str == '+'))
		{ *(p++)='0'; *(p++)='0'; }
	else
		{
		*(p++)= *(str++);
		*(p++)= *(str++);
		if(*str == '.')
			{
			str++;
			while((*str >= '0') && (*str <= '9')) str++;
			}
	}
	*(p++)='Z';
	*(p++)='\0';
	if (*str == 'Z')
		offset=0;
	else
		{
		if ((*str != '+') && (str[5] != '-'))
			return(0);
		offset=((str[1]-'0')*10+(str[2]-'0'))*60;
		offset+=(str[3]-'0')*10+(str[4]-'0');
		if (*str == '-')
			offset= -offset;
		}
	atm.type=ctm->type;
	atm.length=sizeof(buff2);
	atm.data=(unsigned char *)buff2;
	X509_gmtime_adj(&atm,-offset*60);
	if(ctm->type == V_ASN1_UTCTIME)
		{
		i=(buff1[0]-'0')*10+(buff1[1]-'0');
		if (i < 50) i+=100;
		j=(buff2[0]-'0')*10+(buff2[1]-'0');
		if (j < 50) j+=100;
		if (i < j) return (-1);
		if (i > j) return (1);
		}
	i=strcmp(buff1,buff2);
	if (i == 0)
		return(-1);
	else
		return(i);
	}
["int X509_cmp_current_time(ASN1_TIME *ctm)\n\t{\n\tchar *str;\n\tASN1_TIME atm;\n\ttime_t offset;\n\tchar buff1[24],buff2[24],*p;\n\tint i,j;\n\tp=buff1;\n\ti=ctm->length;\n\tstr=(char *)ctm->data;\n\tif(ctm->type == V_ASN1_UTCTIME) {\n\t\tif ((i < 11) || (i > 17)) return(0);\n\t\tmemcpy(p,str,10);\n\t\tp+=10;\n\t\tstr+=10;\n\t} else {\n\t\tif(i < 13) return 0;\n\t\tmemcpy(p,str,12);\n\t\tp+=12;\n\t\tstr+=12;\n\t}\n\tif ((*str == 'Z') || (*str == '-') || (*str == '+'))\n\t\t{ *(p++)='0'; *(p++)='0'; }\n\telse\n\t\t{\n\t\t*(p++)= *(str++);\n\t\t*(p++)= *(str++);\n\t\tif(*str == '.')\n\t\t\t{\n\t\t\tstr++;\n\t\t\twhile((*str >= '0') && (*str <= '9')) str++;\n\t\t\t}\n\t}\n\t*(p++)='Z';\n\t*(p++)='\\0';\n\tif (*str == 'Z')\n\t\toffset=0;\n\telse\n\t\t{\n\t\tif ((*str != '+') && (str[5] != '-'))\n\t\t\treturn(0);\n\t\toffset=((str[1]-'0')*10+(str[2]-'0'))*60;\n\t\toffset+=(str[3]-'0')*10+(str[4]-'0');\n\t\tif (*str == '-')\n\t\t\toffset= -offset;\n\t\t}\n\tatm.type=ctm->type;\n\tatm.length=sizeof(buff2);\n\tatm.data=(unsigned char *)buff2;\n\tX509_gmtime_adj(&atm,-offset*60);\n\tif(ctm->type == V_ASN1_UTCTIME)\n\t\t{\n\t\ti=(buff1[0]-'0')*10+(buff1[1]-'0');\n\t\tif (i < 50) i+=100;\n\t\tj=(buff2[0]-'0')*10+(buff2[1]-'0');\n\t\tif (j < 50) j+=100;\n\t\tif (i < j) return (-1);\n\t\tif (i > j) return (1);\n\t\t}\n\ti=strcmp(buff1,buff2);\n\tif (i == 0)\n\t\treturn(-1);\n\telse\n\t\treturn(i);\n\t}"]