Make bash regexes behave
PATCH 1/1 Make bash regexes behave
On some systems with newer or unpatched bash versions the whole right portion of =~ is considered part of the regex. Means we need to get rid of enclosing ''.
This patch fixes this.
--
dracut-functions | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
dracut-functions +4 -4
@@ -82,17 +82,17 @@ inst_binary() { # I love bash! while read line; do [[ $line = 'not a dynamic executable' ]] && return 1 - [[ $line =~ 'not found' ]] &&{ + [[ $line =~ not\ found ]] &&{ echo "Missing a shared library required by $bin." >&2 echo "Run \"ldd $bin\" to find out what it is." >&2 echo "dracut cannot create an initrd." >&2 exit 1 } - [[ $line =~ '([^ ]*/lib[^/]*/[^ ]*\.so[^ ]*)' ]] || continue + [[ $line =~ ([^ ]*/lib[^/]*/[^ ]*\.so[^ ]*) ]] || continue FILE=${BASH_REMATCH[1]} [[ -f ${initdir}$FILE ]] && continue # see if we are loading an optimized version of a shared lib. - [[ $FILE =~ '^(/lib[^/]*).*' ]] && { + [[ $FILE =~ ^(/lib[^/]*).* ]] && { TLIBDIR=${BASH_REMATCH[1]} BASE="${FILE##*/}" # prefer nosegneg libs, then unoptimized ones.
@@ -115,7 +115,7 @@ inst_binary() { inst_script() { local src=$1 target=${2:-$1} line read -r -n 80 line <"$src" - [[ $line =~ '(#! *)(/[^ ]+).*' ]] || return 1 + [[ $line =~ (#! *)(/[^ ]+).* ]] || return 1 inst "${BASH_REMATCH[2]}" && inst_simple "$src" "$target" }
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html