mm: Avoid integer overflow.
This commit is contained in:
parent
fabde8324d
commit
59ec05bcf8
@ -325,6 +325,15 @@ grub_memalign (grub_size_t align, grub_size_t size)
|
|||||||
if (!grub_mm_base)
|
if (!grub_mm_base)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
if (size > ~(grub_size_t) align)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
/* We currently assume at least a 32-bit grub_size_t,
|
||||||
|
so limiting allocations to <adress space size> - 1MiB
|
||||||
|
in name of sanity is beneficial. */
|
||||||
|
if ((size + align) > ~(grub_size_t) 0x100000)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
align = (align >> GRUB_MM_ALIGN_LOG2);
|
align = (align >> GRUB_MM_ALIGN_LOG2);
|
||||||
if (align == 0)
|
if (align == 0)
|
||||||
align = 1;
|
align = 1;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user