Commit 533b178d authored by Pauli's avatar Pauli Committed by Rich Salz
Browse files

Avoid buffer underflow in evp_test.



The second loop in the remove_space function doesn't check for walking
back off of the start of the string while setting white space to 0.

This fix exits this loop once the pointer is before the (updated) beginning
of the string.

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2752)
parent fa7e9ed3
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -23,17 +23,17 @@

static void remove_space(char **pval)
{
    unsigned char *p = (unsigned char *)*pval;
    unsigned char *p = (unsigned char *)*pval, *beginning;

    while (isspace(*p))
        p++;

    *pval = (char *)p;
    *pval = (char *)(beginning = p);

    p = p + strlen(*pval) - 1;

    /* Remove trailing space */
    while (isspace(*p))
    while (p >= beginning && isspace(*p))
        *p-- = 0;
}