openwrt/package/base-files/files
Jo-Philipp Wich 4a6795409d base-files: functions.sh: fix config_get() on invalid identifiers
When passing a section or option value to config_get() which contains
characters that happen to be valid variable interpolation expressions,
the function returns a nonsensical expression result instead of the
expected empty string.

When the passed section or option name contains other characters which
are not valid within a shell variable name, a substitution error is
occuring instead.

The issue can be easily reproduced by one of the following examples:

    root@OpenWrt:~# . /lib/functions.sh
    root@OpenWrt:~# config load system
    root@OpenWrt:~# config_get variable invalid-section option
    root@OpenWrt:~# echo "$variable"
    section_option:-

    root@OpenWrt:~# . /lib/functions.sh
    root@OpenWrt:~# config load system
    root@OpenWrt:~# config_get variable section invalid-option
    root@OpenWrt:~# echo "$variable"
    option:-

    root@OpenWrt:~# . /lib/functions.sh
    root@OpenWrt:~# config load system
    root@OpenWrt:~# config_get variable section invalid@option
    -ash: eval: syntax error: bad substitution

Fix this issue by only performing interpolations when the given section
and option arguments are free of illegal characters.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-08-07 11:05:16 +02:00
..
bin base-files: add support for compat_version on device 2020-07-31 11:40:15 +02:00
etc base-files: mount bpffs at boot 2020-07-31 13:43:03 +01:00
lib base-files: functions.sh: fix config_get() on invalid identifiers 2020-08-07 11:05:16 +02:00
rom rename default/ to files/ 2006-11-22 23:30:57 +00:00
sbin base-files: remove useless cat 2020-07-11 12:52:01 +02:00
usr base-files: validate firmware for compatibility with backup 2019-09-08 09:10:30 +02:00