Fix the logic for checking config_id 83/318483/1
authorJaehyun Kim <jeik01.kim@samsung.com>
Mon, 22 Apr 2024 10:20:39 +0000 (19:20 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Fri, 17 Jan 2025 07:20:38 +0000 (16:20 +0900)
In the config_id validity check logic,
it only check whether config_id is in the hex value range or is an unerscore.
But this is causing problems because in reality
it can contain all lowercase letters.
So it was modified to also check for lowercase letters.

* This is a side effect caused by the following patch.
  - Fix Stack buffer overflow and Path traversal

Change-Id: I23d0ebc1cc38b9f9e526df38539155c2308257eb
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
src/wifi-config.c

index 9307a257646697a79dfb6498d6e9fb9ef171d4a5..7744c6cf07854d32877ed9dcf3cf57773b00aa39 100755 (executable)
@@ -1255,7 +1255,9 @@ gboolean __netconfig_is_valid_config_id(const gchar *config_id)
                return FALSE;
 
        for (int i = 0; i < length; i++) {
-               if (!(isxdigit(config_id[i])) && config_id[i] != '_')
+               if (!(islower(config_id[i])) &&
+                               !(isdigit(config_id[i])) &&
+                               config_id[i] != '_')
                        return FALSE;
        }