diff --git a/grub-core/kern/file.c b/grub-core/kern/file.c index 3367485fb..668f8930b 100644 --- a/grub-core/kern/file.c +++ b/grub-core/kern/file.c @@ -89,6 +89,11 @@ grub_file_open (const char *name) file->device = device; + /* In case of relative pathnames and non-Unix systems (like Windows) + * name of host files may not start with `/'. Blocklists for host files + * are meaningless as well (for a start, host disk does not allow any direct + * access - it is just a marker). So skip host disk in this case. + */ if (device->disk && file_name[0] != '/' #if defined(GRUB_UTIL) || defined(GRUB_MACHINE_EMU) && grub_strcmp (device->disk->name, "host")