]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
efidisk: NULL pointer dereference in grub_efidisk_get_device_name()
authorEric Snowberg <eric.snowberg@oracle.com>
Thu, 28 Mar 2019 21:26:37 +0000 (15:26 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 2 Apr 2019 11:09:08 +0000 (13:09 +0200)
Function grub_efi_find_last_device_path() may return NULL when called
from grub_efidisk_get_device_name().

Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/disk/efi/efidisk.c

index 78ab2d21ae974a3899ecdfe32f9267d7259bb212..9e20af70ee06d0326b6b85fdc6b4d5ffcd174724 100644 (file)
@@ -836,6 +836,9 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle)
        {
          grub_efi_device_path_t *dup_ldp;
          dup_ldp = grub_efi_find_last_device_path (dup_dp);
+         if (! dup_ldp)
+           break;
+
          if (!(GRUB_EFI_DEVICE_PATH_TYPE (dup_ldp) == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE
                && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dup_ldp) == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE
                    || GRUB_EFI_DEVICE_PATH_SUBTYPE (dup_ldp) == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)))