5c6c2a
From 69b5de6251ab7dace7ed7eb8bea7a81324cefe16 Mon Sep 17 00:00:00 2001
5c6c2a
From: Harald Hoyer <harald@redhat.com>
5c6c2a
Date: Thu, 9 Jul 2015 15:27:44 +0200
5c6c2a
Subject: [PATCH] guard ${arrays[@]} with ""
5c6c2a
5c6c2a
Cherry-picked from: 3721635b2c5df033fca1e19181d7598e075f5308
5c6c2a
Resolves: #1520721
5c6c2a
---
5c6c2a
 dracut-functions.sh                        | 8 ++++----
5c6c2a
 dracut.sh                                  | 6 +++---
5c6c2a
 lsinitrd.sh                                | 2 +-
5c6c2a
 modules.d/90btrfs/module-setup.sh          | 2 +-
5c6c2a
 modules.d/90kernel-modules/module-setup.sh | 2 +-
5c6c2a
 modules.d/95cifs/module-setup.sh           | 2 +-
5c6c2a
 modules.d/95nfs/module-setup.sh            | 2 +-
5c6c2a
 modules.d/95virtfs/module-setup.sh         | 2 +-
5c6c2a
 modules.d/99base/module-setup.sh           | 4 ++--
5c6c2a
 9 files changed, 15 insertions(+), 15 deletions(-)
5c6c2a
5c6c2a
diff --git a/dracut-functions.sh b/dracut-functions.sh
5c6c2a
index 3c4118a9..23768bdc 100755
5c6c2a
--- a/dracut-functions.sh
5c6c2a
+++ b/dracut-functions.sh
5c6c2a
@@ -593,7 +593,7 @@ for_each_host_dev_fs()
5c6c2a
     local _dev
5c6c2a
     local _ret=1
5c6c2a
 
5c6c2a
-    [[ "${!host_fs_types[@]}" ]] || return 0
5c6c2a
+    [[ "${#host_fs_types[@]}" ]] || return 0
5c6c2a
 
5c6c2a
     for _dev in "${!host_fs_types[@]}"; do
5c6c2a
         $_func "$_dev" "${host_fs_types[$_dev]}" && _ret=0
5c6c2a
@@ -654,7 +654,7 @@ for_each_host_dev_and_slaves_all()
5c6c2a
 
5c6c2a
     [[ "${host_devs[@]}" ]] || return 0
5c6c2a
 
5c6c2a
-    for _dev in ${host_devs[@]}; do
5c6c2a
+    for _dev in "${host_devs[@]}"; do
5c6c2a
         [[ -b "$_dev" ]] || continue
5c6c2a
         if check_block_and_slaves_all $_func $(get_maj_min $_dev); then
5c6c2a
             _ret=0
5c6c2a
@@ -670,7 +670,7 @@ for_each_host_dev_and_slaves()
5c6c2a
 
5c6c2a
     [[ "${host_devs[@]}" ]] || return 0
5c6c2a
 
5c6c2a
-    for _dev in ${host_devs[@]}; do
5c6c2a
+    for _dev in "${host_devs[@]}"; do
5c6c2a
         [[ -b "$_dev" ]] || continue
5c6c2a
         check_block_and_slaves $_func $(get_maj_min $_dev) && return 0
5c6c2a
     done
5c6c2a
@@ -1241,7 +1241,7 @@ check_mount() {
5c6c2a
     local _ret
5c6c2a
     local _moddep
5c6c2a
 
5c6c2a
-    [ "${#host_fs_types[*]}" -le 0 ] && return 1
5c6c2a
+    [ "${#host_fs_types[@]}" -le 0 ] && return 1
5c6c2a
 
5c6c2a
     # If we are already scheduled to be loaded, no need to check again.
5c6c2a
     [[ " $mods_to_load " == *\ $_mod\ * ]] && return 0
5c6c2a
diff --git a/dracut.sh b/dracut.sh
5c6c2a
index b34edea2..90b75e51 100755
5c6c2a
--- a/dracut.sh
5c6c2a
+++ b/dracut.sh
5c6c2a
@@ -1171,7 +1171,7 @@ _get_fs_type() {
5c6c2a
     return 1
5c6c2a
 }
5c6c2a
 
5c6c2a
-for dev in ${host_devs[@]}; do
5c6c2a
+for dev in "${host_devs[@]}"; do
5c6c2a
     _get_fs_type "$dev"
5c6c2a
     check_block_and_slaves_all _get_fs_type "$(get_maj_min "$dev")"
5c6c2a
 done
5c6c2a
@@ -1396,8 +1396,8 @@ if [[ $no_kernel != yes ]]; then
5c6c2a
 fi
5c6c2a
 
5c6c2a
 if [[ $kernel_only != yes ]]; then
5c6c2a
-    (( ${#install_items[@]} > 0 )) && inst_multiple ${install_items[@]}
5c6c2a
-    (( ${#install_optional_items[@]} > 0 )) && inst_multiple -o ${install_optional_items[@]}
5c6c2a
+    (( ${#install_items[@]} > 0 )) && inst_multiple "${install_items[@]}"
5c6c2a
+    (( ${#install_optional_items[@]} > 0 )) && inst_multiple -o "${install_optional_items[@]}"
5c6c2a
 
5c6c2a
     [[ $kernel_cmdline ]] && printf "%s\n" "$kernel_cmdline" >> "${initdir}/etc/cmdline.d/01-default.conf"
5c6c2a
 
5c6c2a
diff --git a/lsinitrd.sh b/lsinitrd.sh
5c6c2a
index 4103ee23..0fb7e3b5 100755
5c6c2a
--- a/lsinitrd.sh
5c6c2a
+++ b/lsinitrd.sh
5c6c2a
@@ -113,7 +113,7 @@ fi
5c6c2a
 extract_files()
5c6c2a
 {
5c6c2a
     (( ${#filenames[@]} == 1 )) && nofileinfo=1
5c6c2a
-    for f in ${!filenames[@]}; do
5c6c2a
+    for f in "${!filenames[@]}"; do
5c6c2a
         [[ $nofileinfo ]] || echo "initramfs:/$f"
5c6c2a
         [[ $nofileinfo ]] || echo "========================================================================"
5c6c2a
         $CAT $image 2>/dev/null | cpio --extract --verbose --quiet --to-stdout $f 2>/dev/null
5c6c2a
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
5c6c2a
index 4804f58b..ac8cb885 100755
5c6c2a
--- a/modules.d/90btrfs/module-setup.sh
5c6c2a
+++ b/modules.d/90btrfs/module-setup.sh
5c6c2a
@@ -9,7 +9,7 @@ check() {
5c6c2a
     require_binaries btrfs || return 1
5c6c2a
 
5c6c2a
     [[ $hostonly ]] || [[ $mount_needs ]] && {
5c6c2a
-        for fs in ${host_fs_types[@]}; do
5c6c2a
+        for fs in "${host_fs_types[@]}"; do
5c6c2a
             [[ "$fs" == "btrfs" ]] && return 0
5c6c2a
         done
5c6c2a
         return 255
5c6c2a
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
5c6c2a
index c4bf5af5..dea32602 100755
5c6c2a
--- a/modules.d/90kernel-modules/module-setup.sh
5c6c2a
+++ b/modules.d/90kernel-modules/module-setup.sh
5c6c2a
@@ -83,7 +83,7 @@ installkernel() {
5c6c2a
                     instmods '=fs'
5c6c2a
             fi
5c6c2a
         else
5c6c2a
-            for i in $(host_fs_all); do
5c6c2a
+            for i in "${host_fs_types[@]}"; do
5c6c2a
                 hostonly='' instmods $i
5c6c2a
             done
5c6c2a
         fi
5c6c2a
diff --git a/modules.d/95cifs/module-setup.sh b/modules.d/95cifs/module-setup.sh
5c6c2a
index 9e36f87f..e2509504 100755
5c6c2a
--- a/modules.d/95cifs/module-setup.sh
5c6c2a
+++ b/modules.d/95cifs/module-setup.sh
5c6c2a
@@ -7,7 +7,7 @@ check() {
5c6c2a
     require_binaries mount.cifs || return 1
5c6c2a
 
5c6c2a
     [[ $hostonly ]] || [[ $mount_needs ]] && {
5c6c2a
-        for fs in ${host_fs_types[@]}; do
5c6c2a
+        for fs in "${host_fs_types[@]}"; do
5c6c2a
             [[ "$fs" == "cifs" ]] && return 0
5c6c2a
         done
5c6c2a
         return 255
5c6c2a
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
5c6c2a
index dc2e7221..b0bb866d 100755
5c6c2a
--- a/modules.d/95nfs/module-setup.sh
5c6c2a
+++ b/modules.d/95nfs/module-setup.sh
5c6c2a
@@ -8,7 +8,7 @@ check() {
5c6c2a
     require_binaries rpc.statd mount.nfs mount.nfs4 umount || return 1
5c6c2a
 
5c6c2a
     [[ $hostonly ]] || [[ $mount_needs ]] && {
5c6c2a
-        for fs in ${host_fs_types[@]}; do
5c6c2a
+        for fs in "${host_fs_types[@]}"; do
5c6c2a
             [[ "$fs" == "nfs" ]] && return 0
5c6c2a
             [[ "$fs" == "nfs3" ]] && return 0
5c6c2a
             [[ "$fs" == "nfs4" ]] && return 0
5c6c2a
diff --git a/modules.d/95virtfs/module-setup.sh b/modules.d/95virtfs/module-setup.sh
5c6c2a
index 3d80b75f..c7101c07 100755
5c6c2a
--- a/modules.d/95virtfs/module-setup.sh
5c6c2a
+++ b/modules.d/95virtfs/module-setup.sh
5c6c2a
@@ -4,7 +4,7 @@
5c6c2a
 
5c6c2a
 check() {
5c6c2a
     [[ $hostonly ]] || [[ $mount_needs ]] && {
5c6c2a
-        for fs in ${host_fs_types[@]}; do
5c6c2a
+        for fs in "${host_fs_types[@]}"; do
5c6c2a
             [[ "$fs" == "9p" ]] && return 0
5c6c2a
         done
5c6c2a
         return 255
5c6c2a
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
5c6c2a
index 8fd4e80d..74a3f0c0 100755
5c6c2a
--- a/modules.d/99base/module-setup.sh
5c6c2a
+++ b/modules.d/99base/module-setup.sh
5c6c2a
@@ -103,13 +103,13 @@ install() {
5c6c2a
 
5c6c2a
                 . "$moddir/dracut-lib.sh"
5c6c2a
 
5c6c2a
-                for _dev in ${host_devs[@]}; do
5c6c2a
+                for _dev in "${host_devs[@]}"; do
5c6c2a
                     [[ "$_dev" == "$root_dev" ]] && continue
5c6c2a
 
5c6c2a
                     # We only actually wait for real devs - swap is only needed
5c6c2a
                     # for resume and udev rules generated when parsing resume=
5c6c2a
                     # argument take care of the waiting for us
5c6c2a
-                    for _dev2 in ${swap_devs[@]}; do
5c6c2a
+                    for _dev2 in "${swap_devs[@]}"; do
5c6c2a
                       [[ "$_dev" == "$_dev2" ]] && continue 2
5c6c2a
                     done
5c6c2a