41 lines
1.2 KiB
Diff
41 lines
1.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Darren Kenny <darren.kenny@oracle.com>
|
|
Date: Fri, 23 Oct 2020 09:49:59 +0000
|
|
Subject: [PATCH] kern/partition: Check for NULL before dereferencing input
|
|
string
|
|
|
|
There is the possibility that the value of str comes from an external
|
|
source and continuing to use it before ever checking its validity is
|
|
wrong. So, needs fixing.
|
|
|
|
Additionally, drop unneeded part initialization.
|
|
|
|
Fixes: CID 292444
|
|
|
|
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
---
|
|
grub-core/kern/partition.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/grub-core/kern/partition.c b/grub-core/kern/partition.c
|
|
index 2c401b866..3068c4dca 100644
|
|
--- a/grub-core/kern/partition.c
|
|
+++ b/grub-core/kern/partition.c
|
|
@@ -109,11 +109,14 @@ grub_partition_map_probe (const grub_partition_map_t partmap,
|
|
grub_partition_t
|
|
grub_partition_probe (struct grub_disk *disk, const char *str)
|
|
{
|
|
- grub_partition_t part = 0;
|
|
+ grub_partition_t part;
|
|
grub_partition_t curpart = 0;
|
|
grub_partition_t tail;
|
|
const char *ptr;
|
|
|
|
+ if (str == NULL)
|
|
+ return 0;
|
|
+
|
|
part = tail = disk->partition;
|
|
|
|
for (ptr = str; *ptr;)
|