diff options
author | Dave Reisner <dreisner@archlinux.org> | 2011-09-26 19:51:09 +0200 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2011-10-01 05:31:39 +0200 |
commit | 575c9c458264ca4e507a6a08eb104de5d1255556 (patch) | |
tree | d16a037e18bb12cd37d97bbf8b8be6bf1407f7e9 | |
parent | a831b86df5f1728acfd6bbf676b61cb962029a4d (diff) | |
download | mkinitcpio-575c9c458264ca4e507a6a08eb104de5d1255556.tar.gz mkinitcpio-575c9c458264ca4e507a6a08eb104de5d1255556.tar.xz |
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 <dreisner@archlinux.org>
-rw-r--r-- | init_functions | 6 |
1 files 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} |