From b3e14f5bc70f83b79d3c1d200c2de4609743ceca Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 14 Feb 2019 12:00:39 -0800 Subject: [PATCH] Backport PR #541 to fix RHBZ #1676357 (crasher bug) --- 541.patch | 34 ++++++++++++++++++++++++++++++++++ dracut.spec | 12 ++++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 541.patch diff --git a/541.patch b/541.patch new file mode 100644 index 0000000..76c3d25 --- /dev/null +++ b/541.patch @@ -0,0 +1,34 @@ +From f453de79a70946a097b2d49dd9c1cecf52c71d3d Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 14 Feb 2019 20:18:04 +0100 +Subject: [PATCH] install: string_hash_func should not be fed with NULL + +If kmod_module_get_path returns NULL, we should skip that entry, +the hash function does not like NULL pointers. +--- + install/dracut-install.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/install/dracut-install.c b/install/dracut-install.c +index d64de545a..9e415b5e7 100644 +--- a/install/dracut-install.c ++++ b/install/dracut-install.c +@@ -1244,6 +1244,9 @@ static int install_dependent_modules(struct kmod_list *modlist) + mod = kmod_module_get_module(itr); + path = kmod_module_get_path(mod); + ++ if (path == NULL) ++ continue; ++ + if (check_hashmap(items_failed, path)) + return -1; + +@@ -1253,7 +1256,7 @@ static int install_dependent_modules(struct kmod_list *modlist) + + name = kmod_module_get_name(mod); + +- if ((path == NULL) || (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0))) { ++ if (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0)) { + continue; + } + diff --git a/dracut.spec b/dracut.spec index 62f5b4e..2efb5d6 100644 --- a/dracut.spec +++ b/dracut.spec @@ -5,11 +5,11 @@ # strip the automatically generated dep here and instead co-own the # directory. %global __requires_exclude pkg-config -%define dist_free_release 25.git20181204 +%define dist_free_release 26.git20181204 Name: dracut Version: 049 -Release: %{dist_free_release}%{?dist}.1 +Release: %{dist_free_release}%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} @@ -51,6 +51,11 @@ Patch22: 0022.patch Patch23: 0023.patch Patch24: 0024.patch +# https://github.com/dracutdevs/dracut/pull/541 +# Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1676357 +# dracut-install crash during kernel scriptlets +Patch100: 541.patch + Source1: https://www.gnu.org/licenses/lgpl-2.1.txt BuildRequires: bash @@ -495,6 +500,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne %endif %changelog +* Thu Feb 14 2019 Adam Williamson - 049-26.git20181204 +- Backport PR #541 to fix RHBZ #1676357 (crasher bug) + * Thu Jan 31 2019 Fedora Release Engineering - 049-25.git20181204.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild