https://git.reactos.org/?p=reactos.git;a=commitdiff;h=259abe59dccbdc481ac498a7342b438a2b30c192

commit 259abe59dccbdc481ac498a7342b438a2b30c192
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Sun Aug 11 21:04:18 2024 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@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))
                 {

Reply via email to