There is a problem in ascii_glyph_lookup(). It doesn't check the return
value of grub_malloc(). If memory can't be allocated, then NULL pointer
will be written to.

This patch fixes the problem by fallbacking to unknown_glyph in case of
grub_malloc() returns NULL.

Signed-off-by: Zhang Boyang <zhangboyang...@gmail.com>
---
 grub-core/font/font.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/grub-core/font/font.c b/grub-core/font/font.c
index 3821937e6..19a47f873 100644
--- a/grub-core/font/font.c
+++ b/grub-core/font/font.c
@@ -131,6 +131,11 @@ ascii_glyph_lookup (grub_uint32_t code)
        {
          ascii_font_glyph[current] =
            grub_malloc (sizeof (struct grub_font_glyph) + ASCII_BITMAP_SIZE);
+         if (ascii_font_glyph[current] == NULL)
+           {
+             ascii_font_glyph[current] = unknown_glyph;
+             continue;
+           }
 
          ascii_font_glyph[current]->width = 8;
          ascii_font_glyph[current]->height = 16;
-- 
2.30.2


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to