patched against bash 4.4 to fix infinite loop (https://github.com/dracutdevs/dracut/issues/118) [release 044-3mamba;Tue Oct 04 2016]

This commit is contained in:
Silvan Calarco 2024-01-05 21:56:17 +01:00
parent afd6bb45a1
commit a2466dad3b
2 changed files with 80 additions and 1 deletions

74
dracut-044-bash-4.4.patch Normal file
View File

@ -0,0 +1,74 @@
From 54fe53c365c35a3ab9aa4a0c12908079ef376f1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?tpg=20=28Tomasz=20Pawe=C2=B3=20Gajc=29?= <tpgxyz@gmail.com>
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 ]] \

View File

@ -1,6 +1,6 @@
Name: dracut Name: dracut
Version: 044 Version: 044
Release: 2mamba Release: 3mamba
Summary: Generic, modular initramfs generation tool that can be used across various distributions Summary: Generic, modular initramfs generation tool that can be used across various distributions
Group: System/Kernel and Hardware Group: System/Kernel and Hardware
Vendor: openmamba Vendor: openmamba
@ -23,6 +23,7 @@ Patch19: dracut-040-no-gzip-rsyncable.patch
Patch20: dracut-040-fix-autofs4-ipv6-modules.patch Patch20: dracut-040-fix-autofs4-ipv6-modules.patch
Patch21: dracut-040-dmsetup_fix_path.patch Patch21: dracut-040-dmsetup_fix_path.patch
Patch22: dracut-040-add_systemd_journald_socket.patch Patch22: dracut-040-add_systemd_journald_socket.patch
Patch23: dracut-044-bash-4.4.patch
License: GPL License: GPL
## AUTOBUILDREQ-BEGIN ## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel BuildRequires: glibc-devel
@ -112,6 +113,7 @@ This package conatins extra optional modules for dracut.
#%patch20 -p1 #%patch20 -p1
%patch21 -p1 %patch21 -p1
#%patch22 -p1 #%patch22 -p1
%patch23 -p1
chmod +x modules.d/99squash-live/* chmod +x modules.d/99squash-live/*
# remove *.orig files created by patched to prevent from being installed # remove *.orig files created by patched to prevent from being installed
@ -359,6 +361,9 @@ fi
#%doc NEWS README README.generic README.kernel README.modules TODO #%doc NEWS README README.generic README.kernel README.modules TODO
%changelog %changelog
* Tue Oct 04 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 044-3mamba
- patched against bash 4.4 to fix infinite loop (https://github.com/dracutdevs/dracut/issues/118)
* Sun Jul 24 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 044-2mamba * Sun Jul 24 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 044-2mamba
- move systemd-bootchart module to -extra package - move systemd-bootchart module to -extra package