If we encounter a BOOT_IMAGE var taken from grub2, the first character could be a '(' which will throw off busybox's parser and error out. Reverse the comparison so that the LHS is always a constant, which can be compared to anything (including nothing at all). Fixes FS#26119. Signed-off-by: Dave Reisner <dreisner@archlinux.org> --- init_functions | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/init_functions b/init_functions index fe29961..edaf87c 100644 --- a/init_functions +++ b/init_functions @@ -45,8 +45,8 @@ parse_cmdline() { # only export stuff that does work with ash :) *=*) rhs="$(echo "${w}" | cut -d= -f2-)" lhs="$(echo "${w}" | cut -d= -f1 | sed 's|\.|_|g;s|-|_|g;')" - if [ "${rhs:0:1}" = "\"" ]; then - if [ "${rhs:$((${#rhs}-1))}" = "\"" ]; then + if [ "\"" = "${rhs:0:1}" = ]; then + if [ "\"" = "${rhs:$((${#rhs}-1))}" ]; then rhs="${rhs:1:$((${#rhs}-2))}" else rhs="${rhs:1}" @@ -61,7 +61,7 @@ parse_cmdline() { ;; esac else - if [ "${w:$((${#w}-1))}" = "\"" ]; then + if [ "\"" = "${w:$((${#w}-1))}" ]; then rhs="${rhs} ${w:0:$((${#w}-1))}" in_quotes=0 (echo "${lhs}" | grep -qe '^[0-9]' -e '[^a-zA-Z0-9_]') || eval ${lhs}=\${rhs} -- 1.7.6.4