Harald Hoyer 3610a1
From 03214e51aeffc60669ee9667cbfedea7b21fc4f0 Mon Sep 17 00:00:00 2001
Harald Hoyer 3610a1
From: Harald Hoyer <harald@hoyer.xyz>
Harald Hoyer 3610a1
Date: Tue, 2 Jan 2018 15:01:15 +0100
Harald Hoyer 3610a1
Subject: [PATCH] Merge pull request #343 from lnykryn/boot_image_once_more
Harald Hoyer 3610a1
Harald Hoyer 3610a1
01fips: Properly creating path to .hmac of kernel based on BOOT_IMAGE
Harald Hoyer 3610a1
---
Harald Hoyer 3610a1
 modules.d/01fips/fips.sh | 20 +++++++++++++++-----
Harald Hoyer 3610a1
 1 file changed, 15 insertions(+), 5 deletions(-)
Harald Hoyer 3610a1
Harald Hoyer 3610a1
diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh
Harald Hoyer 3610a1
index 11de1793..9bc089f2 100755
Harald Hoyer 3610a1
--- a/modules.d/01fips/fips.sh
Harald Hoyer 3610a1
+++ b/modules.d/01fips/fips.sh
Harald Hoyer 3610a1
@@ -110,18 +110,28 @@ do_fips()
Harald Hoyer 3610a1
         do_rhevh_check /run/initramfs/live/isolinux/vmlinuz0 || return 1
Harald Hoyer 3610a1
     else
Harald Hoyer 3610a1
         BOOT_IMAGE="$(getarg BOOT_IMAGE)"
Harald Hoyer 3610a1
-        if ! [ -e "/boot/${BOOT_IMAGE}" ]; then
Harald Hoyer 3610a1
+        BOOT_IMAGE_NAME="${BOOT_IMAGE##*/}"
Harald Hoyer 3610a1
+        BOOT_IMAGE_PATH="${BOOT_IMAGE%${BOOT_IMAGE_NAME}}"
Harald Hoyer 3610a1
+
Harald Hoyer 3610a1
+        if [ -z "$BOOT_IMAGE_NAME" ]; then
Harald Hoyer 3610a1
+            BOOT_IMAGE_NAME="vmlinuz-${KERNEL}"
Harald Hoyer 3610a1
+        elif ! [ -e "/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE}" ]; then
Harald Hoyer 3610a1
             #if /boot is not a separate partition BOOT_IMAGE might start with /boot
Harald Hoyer 3610a1
-            BOOT_IMAGE=${BOOT_IMAGE#"/boot"}
Harald Hoyer 3610a1
-            [ -e "/boot/${BOOT_IMAGE}" ] || BOOT_IMAGE="vmlinuz-${KERNEL}"
Harald Hoyer 3610a1
+            BOOT_IMAGE_PATH=${BOOT_IMAGE_PATH#"/boot"}
Harald Hoyer 3610a1
+            #on some achitectures BOOT_IMAGE does not contain path to kernel
Harald Hoyer 3610a1
+            #so if we can't find anything, let's treat it in the same way as if it was empty
Harald Hoyer 3610a1
+            if ! [ -e "/boot/${BOOT_IMAGE_PATH}/${BOOT_IMAGE_NAME}" ]; then
Harald Hoyer 3610a1
+                BOOT_IMAGE_NAME="vmlinuz-${KERNEL}"
Harald Hoyer 3610a1
+                BOOT_IMAGE_PATH=""
Harald Hoyer 3610a1
+            fi
Harald Hoyer 3610a1
         fi
Harald Hoyer 3610a1
-        
Harald Hoyer 3610a1
-        BOOT_IMAGE_HMAC="/boot/${BOOT_IMAGE%/*}/.${BOOT_IMAGE##*/}.hmac"
Harald Hoyer 3610a1
 
Harald Hoyer 3610a1
+        BOOT_IMAGE_HMAC="/boot/${BOOT_IMAGE_PATH}.${BOOT_IMAGE_NAME}.hmac"
Harald Hoyer 3610a1
         if ! [ -e "${BOOT_IMAGE_HMAC}" ]; then
Harald Hoyer 3610a1
             warn "${BOOT_IMAGE_HMAC} does not exist"
Harald Hoyer 3610a1
             return 1
Harald Hoyer 3610a1
         fi
Harald Hoyer 3610a1
+
Harald Hoyer 3610a1
         sha512hmac -c "${BOOT_IMAGE_HMAC}" || return 1
Harald Hoyer 3610a1
     fi
Harald Hoyer 3610a1
 
Harald Hoyer 3610a1