summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2011-09-26 19:51:09 +0200
committerDave Reisner <dreisner@archlinux.org>2011-10-01 05:31:39 +0200
commit575c9c458264ca4e507a6a08eb104de5d1255556 (patch)
treed16a037e18bb12cd37d97bbf8b8be6bf1407f7e9
parenta831b86df5f1728acfd6bbf676b61cb962029a4d (diff)
downloadmkinitcpio-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_functions6
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}