https://git.reactos.org/?p=reactos.git;a=commitdiff;h=259abe59dccbdc481ac49…
commit 259abe59dccbdc481ac498a7342b438a2b30c192
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Aug 11 21:04:18 2024 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Mon Aug 12 12:04:37 2024 +0200
[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.
---
base/setup/lib/setuplib.c | 3 +--
base/setup/lib/setuplib.h | 9 ++++++++-
base/setup/usetup/usetup.c | 4 +---
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/base/setup/lib/setuplib.c b/base/setup/lib/setuplib.c
index 9fb91b24f80..e7c46c433ed 100644
--- a/base/setup/lib/setuplib.c
+++ b/base/setup/lib/setuplib.c
@@ -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))
diff --git a/base/setup/lib/setuplib.h b/base/setup/lib/setuplib.h
index 43fe3a866f9..4272138cac6 100644
--- a/base/setup/lib/setuplib.h
+++ b/base/setup/lib/setuplib.h
@@ -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(
diff --git a/base/setup/usetup/usetup.c b/base/setup/usetup/usetup.c
index 204c92715c1..e6025854e8e 100644
--- a/base/setup/usetup/usetup.c
+++ b/base/setup/usetup/usetup.c
@@ -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))
{