Commit fe082202 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Ignore final '\n' when checking if hex line length is odd.

parent fbc164ec
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -98,9 +98,16 @@ static void fips_set_error_print(void)

int hex2bin(const char *in, unsigned char *out)
    {
    int n1, n2;
    int n1, n2, isodd = 0;
    unsigned char ch;

    n1 = strlen(in);
    if (in[n1 - 1] == '\n')
	n1--;

    if (n1 & 1)
	isodd = 1;

    for (n1=0,n2=0 ; in[n1] && in[n1] != '\n' ; )
	{ /* first byte */
	if ((in[n1] >= '0') && (in[n1] <= '9'))
@@ -120,7 +127,7 @@ int hex2bin(const char *in, unsigned char *out)
	 * all digits valid hex and null terminated which is true for the
	 * strings we pass.
	 */
	if (n1 == 1 && strlen(in) & 1)
	if (n1 == 1 && isodd)
		{
		out[n2++] = ch;
		continue;