From 5eb77ee3fa986f39bb74a5956910aed6f60b8008 Mon Sep 17 00:00:00 2001 From: Lichen Liu Date: Thu, 24 Nov 2022 09:15:25 +0800 Subject: [PATCH] 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 --- kdumpctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kdumpctl b/kdumpctl index b82d869..abfb352 100755 --- a/kdumpctl +++ b/kdumpctl @@ -1353,7 +1353,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"