f6d4ab8
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
f6d4ab8
From: Javier Martinez Canillas <javierm@redhat.com>
f6d4ab8
Date: Fri, 15 Feb 2019 18:15:45 +0100
f6d4ab8
Subject: [PATCH] Check if blsdir exists before attempting to get it's real
f6d4ab8
 path
f6d4ab8
f6d4ab8
It's wrong to assume that the directory would always exist, grub2-mkconfig
f6d4ab8
shouldn't fail if that's not the case.
f6d4ab8
f6d4ab8
Resolves: rhbz#1677415
f6d4ab8
f6d4ab8
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
f6d4ab8
---
f6d4ab8
 util/grub.d/10_linux.in     | 9 ++++++---
f6d4ab8
 util/grub.d/10_linux_bls.in | 9 ++++++---
f6d4ab8
 2 files changed, 12 insertions(+), 6 deletions(-)
f6d4ab8
f6d4ab8
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
f6d4ab8
index 7e80245a151..22a85c69ea0 100644
f6d4ab8
--- a/util/grub.d/10_linux.in
f6d4ab8
+++ b/util/grub.d/10_linux.in
f6d4ab8
@@ -166,9 +166,12 @@ fi
f6d4ab8
 EOF
f6d4ab8
 
f6d4ab8
     if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then
f6d4ab8
-        blsdir=$(make_system_path_relative_to_its_root "/boot/loader/entries")
f6d4ab8
-        if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then
f6d4ab8
-            ${grub_editenv} - set blsdir="${blsdir}"
f6d4ab8
+        blsdir="/boot/loader/entries"
f6d4ab8
+        if [ -d "${blsdir}" ]; then
f6d4ab8
+            blsdir=$(make_system_path_relative_to_its_root "${blsdir}")
f6d4ab8
+            if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then
f6d4ab8
+                ${grub_editenv} - set blsdir="${blsdir}"
f6d4ab8
+            fi
f6d4ab8
         fi
f6d4ab8
 
f6d4ab8
 	${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}"
f6d4ab8
diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in
f6d4ab8
index f0ad9a3da25..47b87c8a14b 100644
f6d4ab8
--- a/util/grub.d/10_linux_bls.in
f6d4ab8
+++ b/util/grub.d/10_linux_bls.in
f6d4ab8
@@ -226,9 +226,12 @@ linux_entry ()
f6d4ab8
     populate_menu
f6d4ab8
 
f6d4ab8
     if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then
f6d4ab8
-        blsdir=$(make_system_path_relative_to_its_root "/boot/loader/entries")
f6d4ab8
-        if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then
f6d4ab8
-            ${grub_editenv} - set blsdir="${blsdir}"
f6d4ab8
+        blsdir="/boot/loader/entries"
f6d4ab8
+        if [ -d "${blsdir}" ]; then
f6d4ab8
+            blsdir=$(make_system_path_relative_to_its_root "${blsdir}")
f6d4ab8
+            if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then
f6d4ab8
+                ${grub_editenv} - set blsdir="${blsdir}"
f6d4ab8
+            fi
f6d4ab8
         fi
f6d4ab8
 
f6d4ab8
 	${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}"