15a2072
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
15a2072
From: Javier Martinez Canillas <javierm@redhat.com>
15a2072
Date: Tue, 3 Apr 2018 15:42:47 +0200
15a2072
Subject: [PATCH] Only attempt to scan different BLS directories on EFI
15a2072
 machines
15a2072
15a2072
Current BLS support attempted to scan for BLS directories, but this only
15a2072
makes sense on EFI, where BLS fragments are in /loader/$vendor/entries.
15a2072
15a2072
For BIOS, only either the default /loader/entries path should be scanned
15a2072
or the BLS directory defined in the blsdir GRUB 2 environment variable.
15a2072
15a2072
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
15a2072
---
15a2072
 grub-core/commands/blscfg.c | 9 ++++-----
15a2072
 1 file changed, 4 insertions(+), 5 deletions(-)
15a2072
15a2072
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
15a2072
index e0b65534af4..e775c6b8794 100644
15a2072
--- a/grub-core/commands/blscfg.c
15a2072
+++ b/grub-core/commands/blscfg.c
15a2072
@@ -676,8 +676,8 @@ static int find_entry (const char *filename,
15a2072
   const char *devid = grub_env_get ("boot");
15a2072
 
15a2072
   grub_dprintf("blscfg", "%s got here\n", __func__);
15a2072
-  if (!grub_strcmp (filename, ".") ||
15a2072
-      !grub_strcmp (filename, ".."))
15a2072
+  if (filename && (!grub_strcmp (filename, ".") ||
15a2072
+		   !grub_strcmp (filename, "..")))
15a2072
     return 0;
15a2072
 
15a2072
   if (info->platform == PLATFORM_EFI && !grub_strcasecmp (filename, "boot"))
15a2072
@@ -872,11 +872,10 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED,
15a2072
   info.platform = PLATFORM_EMU;
15a2072
   grub_dprintf ("blscfg", "scanning %s%s\n", GRUB_BOOT_DEVICE,
15a2072
 		GRUB_BLS_CONFIG_PATH);
15a2072
-  r = fs->dir (dev, "/boot/loader/",
15a2072
-	       find_entry, &info;;
15a2072
+  find_entry(NULL, NULL, &info;;
15a2072
 #else
15a2072
   grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH);
15a2072
-  r = fs->dir (dev, "/", find_entry, &info;;
15a2072
+  find_entry(NULL, NULL, &info;;
15a2072
 #endif
15a2072
 
15a2072
 finish: