[SETUPLIB] Fix the class of characters valid for the installation directory

Commit 7c3f4c94a4 (r68307) mentions the valid characters:
these are:
ASCII alphanumericals (a-z, A-Z, 0-9)
(hence the iswalnum() -> isalnum() change),
and: '.', '\\', '-', '_' . Spaces are not accepted.

Addendum to commit 785cc21598.
This commit is contained in:
Hermès Bélusca-Maïto 2024-08-11 21:04:18 +02:00
parent 30ac80f36b
commit 259abe59dc
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
3 changed files with 10 additions and 6 deletions

View file

@ -731,8 +731,7 @@ IsValidInstallDirectory(
if (!*p || (IS_PATH_SEPARATOR(*p) && !*(p + 1)))
return FALSE;
/* The path must contain only valid characters (alpha-numeric,
* '.', '\\', '-' and '_'). Spaces are not accepted. */
/* The path must contain only valid characters */
for (p = InstallDir; *p; ++p)
{
if (!IS_VALID_INSTALL_PATH_CHAR(*p))

View file

@ -177,8 +177,15 @@ InitSystemPartition(
_In_opt_ PFSVOL_CALLBACK FsVolCallback,
_In_opt_ PVOID Context);
/**
* @brief
* Defines the class of characters valid for the installation directory.
*
* The valid characters are: ASCII alphanumericals (a-z, A-Z, 0-9),
* and: '.', '\\', '-', '_' . Spaces are not allowed.
**/
#define IS_VALID_INSTALL_PATH_CHAR(c) \
(iswalnum(c) || (c) == L'.' || (c) == L'\\' || (c) == L'-' || (c) == L'_')
(isalnum(c) || (c) == L'.' || (c) == L'\\' || (c) == L'-' || (c) == L'_')
BOOLEAN
IsValidInstallDirectory(

View file

@ -3060,9 +3060,7 @@ InstallDirectoryPage(PINPUT_RECORD Ir)
{
if (Length < 50)
{
/* Only accept valid characters for installation path
* (alpha-numeric, '.', '\', '-' and '_'). Note that
* spaces are not accepted. */
/* Only accept valid characters for the installation path */
c = (WCHAR)Ir->Event.KeyEvent.uChar.AsciiChar;
if (IS_VALID_INSTALL_PATH_CHAR(c))
{