dracut/0111.patch
Pavel Valena 9afa387eea dracut-057-118.git20260624
(Includes partial revert of 8107ee642f9929e7e656fc52759816b51fbaef90.)

- feat(resume): add device used for resume
- fix(dracut): remove trailing null characters from SBATs when building UKIs
- fix(network-legacy): replace `echo` writes with `printf` to prevent injection via DHCP
- fix(iscsi): replace `echo` writes with `printf` to prevent variable injection
- fix(network): warn on suspicious shell metacharacters in hostname file
- fix(base): escape arguments in initqueue hook script generation
- revert: "feat(i18n): pull 'drm' or 'simpledrm' module unless excluded"

Resolves: RHEL-119785,RHEL-140458,RHEL-170858,RHEL-178488
2026-06-25 01:40:34 +02:00

66 lines
2.1 KiB
Diff

From f64e4f1d9d8c715c45db1374f2786d6c384e94c7 Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Tue, 10 Feb 2026 03:35:26 +0100
Subject: [PATCH] feat(resume): add device used for resume
regardless of whether it's mounted.
(cherry picked from commit 9d63c6ad9180fde668cb7d259e8f445d1f5677ea)
Resolves: RHEL-119785
---
modules.d/95resume/module-setup.sh | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
index 4b8d8422..66383b39 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -19,26 +19,43 @@ check() {
}
# called by dracut
-cmdline() {
+_get_resume_dev() {
local _resume
for dev in "${!host_fs_types[@]}"; do
[[ ${host_fs_types[$dev]} =~ ^(swap|swsuspend|swsupend)$ ]] || continue
_resume=$(shorten_persistent_dev "$(get_persistent_dev "$dev")")
- [[ -n ${_resume} ]] && printf " resume=%s" "${_resume}"
+ [[ -n ${_resume} ]] && echo "${_resume}"
done
}
+# called by dracut
+cmdline() {
+ local _resume
+ _resume=$(_get_resume_dev)
+ [[ -n ${_resume} ]] && printf " resume=%s" "${_resume}"
+}
+
# called by dracut
install() {
local _bin
local _resumeconf
+ local _dev
if [[ $hostonly_cmdline == "yes" ]]; then
_resumeconf=$(cmdline)
[[ $_resumeconf ]] && printf "%s\n" "$_resumeconf" >> "${initdir}/etc/cmdline.d/95resume.conf"
fi
+ # If we have a resume device on cmdline, we its drivers in initrd regardless whether it's currently mounted
+ # check current cmdline as well as fstab one
+ _dev=$(_get_resume_dev)
+ [[ $_dev ]] && push_user_devs "$_dev"
+
+ _dev=$(grep -oP "resume=\K([^ ]*)" /proc/cmdline)
+ _dev=$(shorten_persistent_dev "$(get_persistent_dev "$_dev")")
+ [[ $_dev ]] && push_user_devs "$_dev"
+
# if systemd is included and has the hibernate-resume tool, use it and nothing else
if dracut_module_included "systemd" && [[ -x $dracutsysrootdir$systemdutildir/systemd-hibernate-resume ]]; then
inst_multiple -o \