From 54fe53c365c35a3ab9aa4a0c12908079ef376f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tpg=20=28Tomasz=20Pawe=C2=B3=20Gajc=29?= Date: Tue, 1 Mar 2016 21:03:18 +0100 Subject: [PATCH] strip NUL bytes in stream before push in string - fixes bug #118 --- dracut.sh | 2 +- modules.d/50drm/module-setup.sh | 6 +++--- modules.d/90kernel-modules/module-setup.sh | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dracut.sh b/dracut.sh index 98dbe0b..2b583de 100755 --- a/dracut.sh +++ b/dracut.sh @@ -1595,7 +1595,7 @@ if [[ $do_strip = yes ]] && ! [[ $DRACUT_FIPS_MODE ]]; then # strip kernel modules, but do not touch signed modules find "$initdir" -type f -path '*/lib/modules/*.ko' -print0 \ | while read -r -d $'\0' f || [ -n "$f" ]; do - SIG=$(tail -c 28 "$f") + SIG=$(tail -c 28 "$f" | tr -d '\000') [[ $SIG == '~Module signature appended~' ]] || { printf "%s\000" "$f"; } done | xargs -r -0 strip -g diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh index 55a214e..80f8ecd 100755 --- a/modules.d/50drm/module-setup.sh +++ b/modules.d/50drm/module-setup.sh @@ -24,9 +24,9 @@ installkernel() { local _fname _fcont while read _fname || [ -n "$_fname" ]; do case "$_fname" in - *.ko) _fcont="$(< $_fname)" ;; - *.ko.gz) _fcont="$(gzip -dc $_fname)" ;; - *.ko.xz) _fcont="$(xz -dc $_fname)" ;; + *.ko) _fcont="$(< "$_fname" | tr -d '\000')" ;; + *.ko.gz) _fcont="$(gzip -dc "$_fname" | tr -d '\000')" ;; + *.ko.xz) _fcont="$(xz -dc "$_fname" | tr -d '\000')" ;; esac [[ $_fcont =~ $_drm_drivers && ! $_fcont =~ iw_handler_get_spy ]] \ diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh index 300adc7..07b2912 100755 --- a/modules.d/90kernel-modules/module-setup.sh +++ b/modules.d/90kernel-modules/module-setup.sh @@ -10,9 +10,9 @@ installkernel() { function bmf1() { local _f while read _f || [ -n "$_f" ]; do case "$_f" in - *.ko) [[ $(< $_f) =~ $_blockfuncs ]] && echo "$_f" ;; - *.ko.gz) [[ $(gzip -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;; - *.ko.xz) [[ $(xz -dc <$_f) =~ $_blockfuncs ]] && echo "$_f" ;; + *.ko) [[ $(< "$_f" | tr -d '\000') =~ $_blockfuncs ]] && echo "$_f" ;; + *.ko.gz) [[ $(gzip -dc <"$_f" | tr -d '\000') =~ $_blockfuncs ]] && echo "$_f" ;; + *.ko.xz) [[ $(xz -dc <"$_f" | tr -d '\000') =~ $_blockfuncs ]] && echo "$_f" ;; esac done return 0 --- dracut-044.orig/modules.d/90kernel-network-modules/module-setup.sh 2015-11-25 14:22:28.000000000 +0100 +++ dracut-044/modules.d/90kernel-network-modules/module-setup.sh 2016-10-04 22:00:04.227897905 +0200 @@ -26,9 +26,9 @@ while read _fname; do [[ $_fname =~ $_unwanted_drivers ]] && continue case "$_fname" in - *.ko) _fcont="$(< $_fname)" ;; - *.ko.gz) _fcont="$(gzip -dc $_fname)" ;; - *.ko.xz) _fcont="$(xz -dc $_fname)" ;; + *.ko) _fcont="$(< "$_fname" | tr -d '000')" ;; + *.ko.gz) _fcont="$(gzip -dc "$_fname" | tr -d '000')" ;; + *.ko.xz) _fcont="$(xz -dc "$_fname" | tr -d '000')" ;; esac [[ $_fcont =~ $_net_drivers && ! $_fcont =~ iw_handler_get_spy ]] \