ieee1275: Fix crash in of_path_of_nvme when of_path is empty
authorJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Thu, 1 Mar 2018 22:34:53 +0000 (23:34 +0100)
committerDaniel Kiper <daniel.kiper@oracle.com>
Mon, 5 Mar 2018 13:36:28 +0000 (14:36 +0100)
The of_path_of_nvme function (commit 2391d57, ieee1275: add nvme
support within ofpath) introduced a functional regression:

On systems which are not based on Open Firmware but have at
least one NVME device, find_obppath will return NULL and thus
trying to append the disk name to of_path will result in a
crash.

The proper behavior of of_path_of_nvme is, however, to just
return NULL in such cases, like other users of find_obppath,
such as of_path_of_scsi.

Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Reviewed-by: Eric Snowberg <eric.snowberg@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/osdep/linux/ofpath.c

index 1c30e72..6180621 100644 (file)
@@ -389,8 +389,11 @@ of_path_of_nvme(const char *sys_devname __attribute__((unused)),
     }
 
   of_path = find_obppath (sysfs_path);
+
+  if (of_path)
+    strcat (of_path, disk);
+
   free (sysfs_path);
-  strcat (of_path, disk);
   return of_path;
 }