]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
initscripts fkt: Check for invalid values in readhash
authorJonatan Schlag <jonatan.schlag@ipfire.org>
Sun, 16 Jun 2024 16:02:41 +0000 (18:02 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 24 Aug 2024 12:19:56 +0000 (12:19 +0000)
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/initscripts/system/functions
tests/src/initscripts/system/functions/data/2
tests/src/initscripts/system/functions/data/2_output_stderr

index 28215974cba4b6ad6f49659567663a14f64954fc..34da7c38ac574e2404c158870e23d6142535b2b9 100644 (file)
@@ -919,6 +919,12 @@ readhash() {
                        continue
                fi
 
+               # Skip lines with invalid values
+               if ! [[ ${val} =~ ^[\'][\ A-Za-z0-9=/,.:%_@#+-]*[\']$ ]] && ! [[ ${val} =~ ^[A-Za-z0-9=/,.:%_@#+-]*$ ]]; then
+                       echo "Invalid value '${val}' for key '${key}'" >&2
+                       continue
+               fi
+
                printf -v "${array}[${key}]" "%s" "${val}"
        done < "${file}"
 }
index 3e1a7028b5ac2632412b9cfb20234d8c45fbd8e8..3060ad880e52ae7e20f7ce2dd5a8c75253109ea1 100644 (file)
@@ -1,7 +1,7 @@
-CONFIG_TYPE=3
-GREEN_DEV=green0
-GREEN_MACADDR=00:c0:08:8a:a0:47
-GREEN_DRIVER=r8175
+CONFIG_TYPE=?3
+GREEN_DEV=gree!n0
+GREEN_MACADDR=00:c0:08:8a  :a0:47
+GREEN_DRIVER="r8175"
 -RED_DEV=red0
 RE??D_MACADDR=00:c0:08:8a:a0:56
 RED&&_DRIVER=r8283
index dfcf2154b39a7006aa5935750b904949e75060ba..f29e94b19129dd9531686b9fb5abb7f102bdc27f 100644 (file)
@@ -1,3 +1,7 @@
+Invalid value '?3' for key 'CONFIG_TYPE'
+Invalid value 'gree!n0' for key 'GREEN_DEV'
+Invalid value '00:c0:08:8a  :a0:47' for key 'GREEN_MACADDR'
+Invalid value '"r8175"' for key 'GREEN_DRIVER'
 Invalid key '-RED_DEV'
 Invalid key 'RE??D_MACADDR'
 Invalid key 'RED&&_DRIVER'