1From 7c8a2b5d1421a0f2a33d33531f7561f3da93b844 Mon Sep 17 00:00:00 2001
2From: Paulo Flabiano Smorigo <pfsmorigo@canonical.com>
3Date: Mon, 30 Nov 2020 10:36:00 -0300
4Subject: [PATCH] loader/xnu: Check if pointer is NULL before using it
5
6Fixes: CID 73654
7
8Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@canonical.com>
9Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
10Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
11---
12 grub-core/loader/xnu.c | 8 ++++----
13 1 file changed, 4 insertions(+), 4 deletions(-)
14
15diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c
16index 1a590db..1c0cf6a 100644
17--- a/grub-core/loader/xnu.c
18+++ b/grub-core/loader/xnu.c
19@@ -670,6 +670,9 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile,
20   char *name, *nameend;
21   int namelen;
22
23+  if (infoplistname == NULL)
24+    return grub_error (GRUB_ERR_BAD_FILENAME, N_("missing p-list filename"));
25+
26   name = get_name_ptr (infoplistname);
27   nameend = grub_strchr (name, '/');
28
29@@ -701,10 +704,7 @@ grub_xnu_load_driver (char *infoplistname, grub_file_t binaryfile,
30   else
31     macho = 0;
32
33-  if (infoplistname)
34-    infoplist = grub_file_open (infoplistname, GRUB_FILE_TYPE_XNU_INFO_PLIST);
35-  else
36-    infoplist = 0;
37+  infoplist = grub_file_open (infoplistname, GRUB_FILE_TYPE_XNU_INFO_PLIST);
38   grub_errno = GRUB_ERR_NONE;
39   if (infoplist)
40     {
41--
422.14.2
43
44