From 575c9c458264ca4e507a6a08eb104de5d1255556 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Mon, 26 Sep 2011 13:51:09 -0400 Subject: init_functions: use constants on LHS of tests 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 --- init_functions | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/init_functions b/init_functions index fe29961..609aff0 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} -- cgit v1.2.3-24-g4f1b