[USETUP] Improve the install path checks

- Path must not contain whitespace characters.
- Path must be at least 2 characters long.
- Path must start with a backslash.
- Path must not end with a backslash.
- Path components must not end with a dot.

CORE-9529
This commit is contained in:
Eric Kohl 2018-05-15 15:45:31 +02:00
parent 3bf2f30cf2
commit 16daf6700a

View file

@ -140,13 +140,38 @@ IsValidPath(
// TODO: Add check for 8.3 too.
/* Check for whitespaces */
/* Path must be at least 2 characters long */
if (Length < 2)
return FALSE;
/* Path must start with a backslash */
if (InstallDir[0] != L'\\')
return FALSE;
/* Path must not end with a backslash */
if (InstallDir[Length - 1] == L'\\')
return FALSE;
/* Path must not contain whitespace characters */
for (i = 0; i < Length; i++)
{
if (isspace(InstallDir[i]))
return FALSE;
}
/* Path component must not end with a dot */
for (i = 0; i < Length; i++)
{
if (InstallDir[i] == L'\\' && i > 0)
{
if (InstallDir[i - 1] == L'.')
return FALSE;
}
}
if (InstallDir[Length - 1] == L'.')
return FALSE;
return TRUE;
}