From 8b0791fa010cf7e5fde3a37a8c2bb6d6f1264f59 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Mon, 14 Jul 2014 10:22:31 +0200 Subject: [PATCH] Reset IFS variable 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 --- modules.d/95dasd/parse-dasd.sh | 2 ++ modules.d/95dasd_rules/parse-dasd.sh | 8 ++++++-- modules.d/95zfcp_rules/parse-zfcp.sh | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules.d/95dasd/parse-dasd.sh b/modules.d/95dasd/parse-dasd.sh index 35c997c7..976bd032 100755 --- a/modules.d/95dasd/parse-dasd.sh +++ b/modules.d/95dasd/parse-dasd.sh @@ -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 diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh index e1bee620..1cc621fc 100755 --- a/modules.d/95dasd_rules/parse-dasd.sh +++ b/modules.d/95dasd_rules/parse-dasd.sh @@ -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 diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh index d34b861e..932c5c1c 100755 --- a/modules.d/95zfcp_rules/parse-zfcp.sh +++ b/modules.d/95zfcp_rules/parse-zfcp.sh @@ -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