crypto/asn1/a_object.c:168: error: UNINITIALIZED_VALUE
  The value read from tmp[_] was never initialized.
Showing all 1 steps of the trace


crypto/asn1/a_object.c:168:4: 
166.   			while (--i > 0)
167.   				out[len++]=tmp[i]|0x80;
168. > 			out[len++]=tmp[0];
169.   			}
170.   		else

int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
	{
	int i,first,len=0,c;
	char tmp[24];
	const char *p;
	unsigned long l;
	if (num == 0)
		return(0);
	else if (num == -1)
		num=strlen(buf);
	p=buf;
	c= *(p++);
	num--;
	if ((c >= '0') && (c <= '2'))
		{
		first=(c-'0')*40;
		}
	else
		{
		ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_FIRST_NUM_TOO_LARGE);
		goto err;
		}
	if (num <= 0)
		{
		ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_MISSING_SECOND_NUMBER);
		goto err;
		}
	c= *(p++);
	num--;
	for (;;)
		{
		if (num <= 0) break;
		if ((c != '.') && (c != ' '))
			{
			ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_INVALID_SEPARATOR);
			goto err;
			}
		l=0;
		for (;;)
			{
			if (num <= 0) break;
			num--;
			c= *(p++);
			if ((c == ' ') || (c == '.'))
				break;
			if ((c < '0') || (c > '9'))
				{
				ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_INVALID_DIGIT);
				goto err;
				}
			l=l*10L+(long)(c-'0');
			}
		if (len == 0)
			{
			if ((first < 2) && (l >= 40))
				{
				ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_SECOND_NUMBER_TOO_LARGE);
				goto err;
				}
			l+=(long)first;
			}
		i=0;
		for (;;)
			{
			tmp[i++]=(unsigned char)l&0x7f;
			l>>=7L;
			if (l == 0L) break;
			}
		if (out != NULL)
			{
			if (len+i > olen)
				{
				ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_BUFFER_TOO_SMALL);
				goto err;
				}
			while (--i > 0)
				out[len++]=tmp[i]|0x80;
			out[len++]=tmp[0];
			}
		else
			len+=i;
		}
	return(len);
err:
	return(0);
	}
["int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)\n\t{\n\tint i,first,len=0,c;\n\tchar tmp[24];\n\tconst char *p;\n\tunsigned long l;\n\tif (num == 0)\n\t\treturn(0);\n\telse if (num == -1)\n\t\tnum=strlen(buf);\n\tp=buf;\n\tc= *(p++);\n\tnum--;\n\tif ((c >= '0') && (c <= '2'))\n\t\t{\n\t\tfirst=(c-'0')*40;\n\t\t}\n\telse\n\t\t{\n\t\tASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_FIRST_NUM_TOO_LARGE);\n\t\tgoto err;\n\t\t}\n\tif (num <= 0)\n\t\t{\n\t\tASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_MISSING_SECOND_NUMBER);\n\t\tgoto err;\n\t\t}\n\tc= *(p++);\n\tnum--;\n\tfor (;;)\n\t\t{\n\t\tif (num <= 0) break;\n\t\tif ((c != '.') && (c != ' '))\n\t\t\t{\n\t\t\tASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_INVALID_SEPARATOR);\n\t\t\tgoto err;\n\t\t\t}\n\t\tl=0;\n\t\tfor (;;)\n\t\t\t{\n\t\t\tif (num <= 0) break;\n\t\t\tnum--;\n\t\t\tc= *(p++);\n\t\t\tif ((c == ' ') || (c == '.'))\n\t\t\t\tbreak;\n\t\t\tif ((c < '0') || (c > '9'))\n\t\t\t\t{\n\t\t\t\tASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_INVALID_DIGIT);\n\t\t\t\tgoto err;\n\t\t\t\t}\n\t\t\tl=l*10L+(long)(c-'0');\n\t\t\t}\n\t\tif (len == 0)\n\t\t\t{\n\t\t\tif ((first < 2) && (l >= 40))\n\t\t\t\t{\n\t\t\t\tASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_SECOND_NUMBER_TOO_LARGE);\n\t\t\t\tgoto err;\n\t\t\t\t}\n\t\t\tl+=(long)first;\n\t\t\t}\n\t\ti=0;\n\t\tfor (;;)\n\t\t\t{\n\t\t\ttmp[i++]=(unsigned char)l&0x7f;\n\t\t\tl>>=7L;\n\t\t\tif (l == 0L) break;\n\t\t\t}\n\t\tif (out != NULL)\n\t\t\t{\n\t\t\tif (len+i > olen)\n\t\t\t\t{\n\t\t\t\tASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_BUFFER_TOO_SMALL);\n\t\t\t\tgoto err;\n\t\t\t\t}\n\t\t\twhile (--i > 0)\n\t\t\t\tout[len++]=tmp[i]|0x80;\n\t\t\tout[len++]=tmp[0];\n\t\t\t}\n\t\telse\n\t\t\tlen+=i;\n\t\t}\n\treturn(len);\nerr:\n\treturn(0);\n\t}"]