Fix handling of known hosts files starting with ~.
https://bugzilla.redhat.com/show_bug.cgi?id=541423#c3 Done by adding the eval back. The only thing that this breaks AFAIK is handling of known hosts filenames that have more than one consecutive space in them, but I couldn't figure out how to get both to work and IMO support for files starting with ~ is much more important.
This commit is contained in:
parent
6f921d563b
commit
76de7c2984
@ -1260,9 +1260,12 @@ _known_hosts_real()
|
|||||||
local OIFS=$IFS IFS=$'\n'
|
local OIFS=$IFS IFS=$'\n'
|
||||||
local -a tmpkh
|
local -a tmpkh
|
||||||
# expand paths (if present) to global and user known hosts files
|
# expand paths (if present) to global and user known hosts files
|
||||||
tmpkh=( $( sed -ne 's/^[ \t]*\([Gg][Ll][Oo][Bb][Aa][Ll]\|[Uu][Ss][Ee][Rr]\)[Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/"\2"/p' "${config[@]}" ) )
|
# TODO(?): try to make known hosts files with more than one consecutive
|
||||||
for i in "${tmpkh[@]}"; do
|
# spaces in their name work (watch out for ~ expansion
|
||||||
i=$( echo "${i//\"/}" )
|
# breakage! Alioth#311595)
|
||||||
|
tmpkh=( $( sed -ne 's/^[ \t]*\([Gg][Ll][Oo][Bb][Aa][Ll]\|[Uu][Ss][Ee][Rr]\)[Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\2/p' "${config[@]}" ) )
|
||||||
|
for i in "${tmpkh[@]//\"/}"; do
|
||||||
|
i=$( eval echo "$i" ) # expand ~
|
||||||
[ -r "$i" ] && kh=( "${kh[@]}" "$i" )
|
[ -r "$i" ] && kh=( "${kh[@]}" "$i" )
|
||||||
done
|
done
|
||||||
IFS=$OIFS
|
IFS=$OIFS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user