From 2479a83bc5362af4b0ddd2c80332c2b748eac0be Mon Sep 17 00:00:00 2001 From: Colin Guthrie <colin@mageia.org> Date: Sun, 24 Feb 2013 19:48:57 +0000 Subject: [PATCH 509/514] dracut-init.sh: Make sure to install full path PROGRAM= binaries in udev rules. --- dracut-init.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dracut-init.sh b/dracut-init.sh index e8a705ec..d3e11f18 100644 --- a/dracut-init.sh +++ b/dracut-init.sh @@ -380,7 +380,9 @@ inst_rule_programs() { for _prog in $(sed -nr 's/.*PROGRAM==?"([^ "]+).*/\1/p' "$1"); do _bin="" # shellcheck disable=SC2154 - if [[ -x ${udevdir}/$_prog ]]; then + if [ "/" = "${_prog::1}" -a -x $_prog ]; then + _bin=$_prog + elif [[ -x ${udevdir}/$_prog ]]; then _bin="${udevdir}"/$_prog elif [[ ${_prog/\$env\{/} == "$_prog" ]]; then _bin=$(find_binary "$_prog") || { @@ -395,7 +397,9 @@ inst_rule_programs() { # shellcheck disable=SC2013 for _prog in $(sed -nr 's/.*RUN[+=]=?"([^ "]+).*/\1/p' "$1"); do _bin="" - if [[ -x ${udevdir}/$_prog ]]; then + if [ "/" = "${_prog::1}" -a -x $_prog ]; then + _bin=$_prog + elif [[ -x ${udevdir}/$_prog ]]; then _bin=${udevdir}/$_prog elif [[ ${_prog/\$env\{/} == "$_prog" ]] && [[ ${_prog} != "/sbin/initqueue" ]]; then _bin=$(find_binary "$_prog") || { @@ -410,7 +414,9 @@ inst_rule_programs() { # shellcheck disable=SC2013 for _prog in $(sed -nr 's/.*IMPORT\{program\}==?"([^ "]+).*/\1/p' "$1"); do _bin="" - if [[ -x ${udevdir}/$_prog ]]; then + if [ "/" = "${_prog::1}" -a -x $_prog ]; then + _bin=$_prog + elif [[ -x ${udevdir}/$_prog ]]; then _bin=${udevdir}/$_prog elif [[ ${_prog/\$env\{/} == "$_prog" ]]; then _bin=$(find_binary "$_prog") || { -- 2.13.5