diff options
author | Christophe GUIBOUT <christophe.guibout@st.com> | 2020-09-10 14:06:31 +0000 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2020-09-14 04:49:12 -1000 |
commit | 16bad6260a6a25b2ec25c7eb0dfe526db56f166e (patch) | |
tree | fe26860dddd557a50f80589349b41feedcbb65e0 | |
parent | 1cc94a6b9b6a9d12f782471053448ad9795944bb (diff) | |
download | openembedded-core-contrib-16bad6260a6a25b2ec25c7eb0dfe526db56f166e.tar.gz |
initramfs-framework: support kernel cmdline with double quotes
It avoids init to crash when kernel cmdline contains a string with
spaces inside, like that:
dyndbg="file drivers/usb/core/hub.c +pltf"
Signed-off-by: Christophe Guibout <christophe.guibout@st.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 88b8b94bd2d052bca29d27bd5cd00eddb0f5999d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rwxr-xr-x | meta/recipes-core/initrdscripts/initramfs-framework/init | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init b/meta/recipes-core/initrdscripts/initramfs-framework/init index c71ce0ce8c..567694aff7 100755 --- a/meta/recipes-core/initrdscripts/initramfs-framework/init +++ b/meta/recipes-core/initrdscripts/initramfs-framework/init @@ -88,12 +88,25 @@ fi # populate bootparam environment for p in `cat /proc/cmdline`; do + if [ -n "$quoted" ]; then + value="$value $p" + if [ "`echo $p | sed -e 's/\"$//'`" != "$p" ]; then + eval "bootparam_${quoted}=${value}" + unset quoted + fi + continue + fi + opt=`echo $p | cut -d'=' -f1` opt=`echo $opt | sed -e 'y/.-/__/'` if [ "`echo $p | cut -d'=' -f1`" = "$p" ]; then eval "bootparam_${opt}=true" else value="`echo $p | cut -d'=' -f2-`" + if [ "`echo $value | sed -e 's/^\"//'`" != "$value" ]; then + quoted=${opt} + continue + fi eval "bootparam_${opt}=\"${value}\"" fi done |