From: Jonatan Schlag Date: Sun, 16 Jun 2024 16:02:42 +0000 (+0200) Subject: initscripts fkt: readhash should only parse lines with a = X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f1d94e7457a3d497d8c65acd9be606291a5ac6f6;p=people%2Fms%2Fipfire-2.x.git initscripts fkt: readhash should only parse lines with a = A line without a = is clearly invalid. Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- diff --git a/src/initscripts/system/functions b/src/initscripts/system/functions index 34da7c38a..84aaf251a 100644 --- a/src/initscripts/system/functions +++ b/src/initscripts/system/functions @@ -910,6 +910,12 @@ readhash() { continue fi + # Skip lines without a = + if ! [[ ${line} =~ [^=]*=[^=]*$ ]]; then + echo "Invalid line '${line}'" >&2 + continue + fi + local key="${line%=*}" local val="${line#*=}" diff --git a/tests/src/initscripts/system/functions/data/2 b/tests/src/initscripts/system/functions/data/2 index 3060ad880..760294c30 100644 --- a/tests/src/initscripts/system/functions/data/2 +++ b/tests/src/initscripts/system/functions/data/2 @@ -15,6 +15,7 @@ RED_ADDRESS=0.0.0.0 RED_NETMASK=0.0.0.0 RED_TYPE=PPPOE RED_NETADDRESS=0.0.0.0 +Line_without_a_equal_sign_is_also_invalid # Comment for testing # Comment for testing Comments with spaces before diff --git a/tests/src/initscripts/system/functions/data/2_output_stderr b/tests/src/initscripts/system/functions/data/2_output_stderr index f29e94b19..82f035e26 100644 --- a/tests/src/initscripts/system/functions/data/2_output_stderr +++ b/tests/src/initscripts/system/functions/data/2_output_stderr @@ -6,3 +6,4 @@ Invalid key '-RED_DEV' Invalid key 'RE??D_MACADDR' Invalid key 'RED&&_DRIVER' Invalid key '0BLUE_DEV' +Invalid line 'Line_without_a_equal_sign_is_also_invalid'