From 1c4b461882c94febb39a550e0fe3065208139757 Mon Sep 17 00:00:00 2001 From: Crestez Dan Leonard Date: Sun, 7 Feb 2010 01:05:51 +0200 Subject: (mount) Fix leaking fs_* vars to the environment. Explicitly save/restore IFS to be posix conformant. --- contrib/mount | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/mount b/contrib/mount index 41afb07d..bfa2a273 100644 --- a/contrib/mount +++ b/contrib/mount @@ -29,7 +29,9 @@ _reply_compgen_array() ecur="${ecur/#$\'/\$\'}" # Actually generate completions. + local oldifs="$IFS" IFS=$'\n' eval 'COMPREPLY=(`compgen -W "$wlist" -- "${ecur}"`)' + IFS="$oldifs" # Strip starting $' in reply if present in cur. # This is necesarry because readline interprets everything after ' as a @@ -48,10 +50,14 @@ _linux_fstab() COMPREPLY=() # Read and unescape values into COMPREPLY + local fs_spec fs_file fs_other while read -r fs_spec fs_file fs_other; do if [[ $fs_spec = [#]* ]]; then continue; fi - [[ $fs_spec = */* ]] && { IFS=$'\0' eval "COMPREPLY+=( $'$fs_spec' )"; } - [[ $fs_file = */* ]] && { IFS=$'\0' eval "COMPREPLY+=( $'$fs_file' )"; } + local oldifs="$IFS" + IFS=$'\0' + [[ $fs_spec = */* ]] && eval "COMPREPLY+=( $'$fs_spec' )"; + [[ $fs_file = */* ]] && eval "COMPREPLY+=( $'$fs_file' )"; + IFS="$oldifs" done _reply_compgen_array -- cgit v1.2.1