All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] diskfilter: check calloc() result for NULL
@ 2022-08-21 12:22 Daniel Axtens
  2022-08-21 12:22 ` [PATCH 2/2] diskfilter: don't make a RAID array with more than 1024 disks Daniel Axtens
  2022-10-06 13:42 ` [PATCH 1/2] diskfilter: check calloc() result for NULL Daniel Kiper
  0 siblings, 2 replies; 5+ messages in thread
From: Daniel Axtens @ 2022-08-21 12:22 UTC (permalink / raw)
  To: grub-devel; +Cc: Daniel Axtens

With wildly corrupt inputs, we can end up trying to calloc a very
large amount of memory, which will fail and give us a NULL pointer.
We need to check that to avoid a crash. (And, even if we blocked
such inputs, it is good practice to check the results of allocations
anyway.)

Signed-off-by: Daniel Axtens <dja@axtens.net>
---
 grub-core/disk/diskfilter.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c
index 2edcff6e8987..4ac50320ef4e 100644
--- a/grub-core/disk/diskfilter.c
+++ b/grub-core/disk/diskfilter.c
@@ -1163,6 +1163,9 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb,
   array->lvs->segments->raid_member_size = disk_size;
   array->lvs->segments->nodes
     = grub_calloc (nmemb, sizeof (array->lvs->segments->nodes[0]));
+  if (array->lvs->segments->nodes == NULL)
+    goto fail;
+
   array->lvs->segments->stripe_size = stripe_size;
   for (i = 0; i < nmemb; i++)
     {
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-06 13:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-21 12:22 [PATCH 1/2] diskfilter: check calloc() result for NULL Daniel Axtens
2022-08-21 12:22 ` [PATCH 2/2] diskfilter: don't make a RAID array with more than 1024 disks Daniel Axtens
2022-08-22 15:55   ` Daniel Axtens
2022-10-06 13:44     ` Daniel Kiper
2022-10-06 13:42 ` [PATCH 1/2] diskfilter: check calloc() result for NULL Daniel Kiper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.