]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
Reset IFS variable
authorHannes Reinecke <hare@suse.de>
Mon, 14 Jul 2014 08:22:31 +0000 (10:22 +0200)
committerDaniel Molkentin <dmolkentin@suse.com>
Fri, 23 Jun 2017 19:27:02 +0000 (21:27 +0200)
Setting and unsetting the IFS variable is tricky. To be on the
safe side we should always reset the IFS variable to its original
value after parsing.

Signed-off-by: Hannes Reinecke <hare@suse.de>
modules.d/95dasd/parse-dasd.sh
modules.d/95dasd_rules/parse-dasd.sh
modules.d/95zfcp_rules/parse-zfcp.sh

index 35c997c7741863b3bae9e8f3d2ea54ee85007132..976bd032e2c370773faa95bb8a9b3bccc189e0e4 100755 (executable)
@@ -1,8 +1,10 @@
 #!/bin/sh
 for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do
     (
+        local OLDIFS="$IFS"
         IFS=","
         set -- $dasd_arg
+        IFS="$OLDIFS"
         echo "$@" | normalize_dasd_arg >> /etc/dasd.conf
     )
 done
index e1bee6206968e4d418e6f4650a5be8dbba5f8fc6..1cc621fc0cdf9cd52f45e0c70b5b41814ca5ab61 100755 (executable)
@@ -59,8 +59,10 @@ for dasd_arg in $(getargs root=) $(getargs resume=); do
                 ;;
         esac
         if [ -n "$ccw_arg" ] ; then
+            OLDIFS="$IFS"
             IFS="-"
             set -- $ccw_arg
+            IFS="$OLDIFS"
             create_udev_rule $2
         fi
     )
@@ -68,9 +70,10 @@ done
 
 for dasd_arg in $(getargs rd.dasd=); do
     (
+        OLDIFS="$IFS"
         IFS=","
         set -- $dasd_arg
-        unset IFS
+        IFS="$OLDIFS"
         while (($# > 0)); do
             case $1 in
                 autodetect|probeonly)
@@ -78,13 +81,14 @@ for dasd_arg in $(getargs rd.dasd=); do
                     ;;
                 *-*)
                     range=$1
+                    OLDIFS="$IFS"
                     IFS="-"
                     set -- $range
                     start=${1#0.0.}
                     shift
                     end=${1#0.0.}
                     shift
-                    unset IFS
+                    IFS="$OLDIFS"
                     for dev in $(seq $(( 16#$start )) $(( 16#$end )) ) ; do
                         create_udev_rule $(printf "0.0.%04x" "$dev")
                     done
index d34b861eb8a730e38c25eeea4bad4ffce211a479..932c5c1c4afb6b505b6f64b8304a40ce431ccc2e 100755 (executable)
@@ -55,8 +55,10 @@ fi
 
 for zfcp_arg in $(getargs rd.zfcp); do
     (
+        OLDIFS="$IFS"
         IFS=","
         set $zfcp_arg
+        IFS="$OLDIFS"
         create_udev_rule $1 $2 $3
     )
 done
@@ -72,8 +74,10 @@ for zfcp_arg in $(getargs root=) $(getargs resume=); do
                 ;;
         esac
         if [ -n "$ccw_arg" ] ; then
+            OLDIFS="$IFS"
             IFS="-"
             set -- $ccw_arg
+            IFS="$OLDIFS"
             _wwpn=${4%:*}
             _lun=${4#*:}
             create_udev_rule $2 $wwpn $lun