From fd2521df50464ea9c7acfd908ec59ebb078f30fb Mon Sep 17 00:00:00 2001 From: Lichen Liu Date: Dec 05 2022 08:57:09 +0000 Subject: kdumpctl: Optimize _find_kernel_path_by_release regex string Resolves: bz2141536 Upstream: Fedora Conflict: None commit 5eb77ee3fa986f39bb74a5956910aed6f60b8008 Author: Lichen Liu Date: Thu Nov 24 09:15:25 2022 +0800 kdumpctl: Optimize _find_kernel_path_by_release regex string Currently _find_kernel_path_by_release uses grubby and grep to find the kernel path, if both the normal kernel and it's debug varient exist, the grep will give more than one kernel strings. ``` kernel="/boot/vmlinuz-5.14.0-139.kpq0.el9.s390x+debug" kernel="/boot/vmlinuz-5.14.0-139.kpq0.el9.s390x" ``` This will cause an error when installing debug kernel. ``` The param "/boot/vmlinuz-5.14.0-139.kpq0.el9.s390x+debug /boot/vmlinuz-5.14.0-139.kpq0.el9.s390x" is incorrect ``` Fixes: 945cbbd ("add helper functions to get kernel path by kernel release and the path of current running kernel") Signed-off-by: Lichen Liu Reviewed-by: Philipp Rudo Signed-off-by: Lichen Liu --- diff --git a/kdumpctl b/kdumpctl index 00f1c53..119c347 100755 --- a/kdumpctl +++ b/kdumpctl @@ -1380,7 +1380,7 @@ _filter_grubby_kernel_str() _find_kernel_path_by_release() { local _release="$1" _grubby_kernel_str _kernel_path - _grubby_kernel_str=$(grubby --info ALL | grep "^kernel=.*$_release") + _grubby_kernel_str=$(grubby --info ALL | grep "^kernel=.*$_release\"$") _kernel_path=$(_filter_grubby_kernel_str "$_grubby_kernel_str") if [[ -z $_kernel_path ]]; then derror "kernel $_release doesn't exist"