[arch-projects] [mkinitcpio][PATCH 25/26] init_functions: use constants on LHS of tests

Dave Reisner d at falconindy.com
Mon Sep 26 21:22:26 EDT 2011


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 at 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



More information about the arch-projects mailing list