[19/21] initscripts fkt: Check for invalid values in readhash
Commit Message
Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
---
src/initscripts/system/functions | 6 ++++++
tests/src/initscripts/system/functions/data/2 | 8 ++++----
.../src/initscripts/system/functions/data/2_output_stderr | 4 ++++
3 files changed, 14 insertions(+), 4 deletions(-)
@@ -926,6 +926,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}"
}
@@ -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
@@ -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'