From 2bbc7512a2f2cf953ea047f54bd590d4d285b658 Mon Sep 17 00:00:00 2001 From: Tao Liu Date: Wed, 16 Feb 2022 14:26:38 +0800 Subject: [PATCH] kdump-lib.sh: Check the output of blkid with sed instead of eval Previously the output of blkid is not checked. If the output is empty, the eval will report the following error message: /lib/kdump/kdump-lib.sh: eval: line 925: syntax error near unexpected token `;' /lib/kdump/kdump-lib.sh: eval: line 925: `; echo $TYPE' For example, we can observe such a failing when blkid is invoked against a lvm thinpool block device: $ blkid -u filesystem,crypto -o export -- "/dev/block/253\:2" $ echo $? 2 $ udevadm info /dev/block/253\:2|grep S\: S: mapper/vg00-thinpoll_tmeta In this patch, we will use sed instead of eval, to output the fstype of block device if any. Signed-off-by: Tao Liu Reviewed-by: Philipp Rudo --- kdump-lib.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kdump-lib.sh b/kdump-lib.sh index 3e912cc..4ed5035 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -885,7 +885,8 @@ get_luks_crypt_dev() [[ -b /dev/block/$1 ]] || return 1 - _type=$(eval "$(blkid -u filesystem,crypto -o export -- "/dev/block/$1"); echo \$TYPE") + _type=$(blkid -u filesystem,crypto -o export -- "/dev/block/$1" | \ + sed -n -E "s/^TYPE=(.*)$/\1/p") [[ $_type == "crypto_LUKS" ]] && echo "$1" for _x in "/sys/dev/block/$1/slaves/"*; do