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: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2752)
This commit is contained in:
parent
fa7e9ed3d1
commit
533b178db6
1 changed files with 3 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue