mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-20 22:48:22 +00:00
2010-02-13 Vladimir Serbinenko <phcoder@gmail.com>
* loader/sparc64/ieee1275/linux.c (alloc_phys): Correct bounds checking.
This commit is contained in:
1 parent
17cec782c4
commit
8c6052cea5
2 files changed
+9
-5
No files matched your search
@@ -193,20 +193,20 @@ alloc_phys (grub_addr_t size)
|
||||
return 0;
|
||||
|
||||
addr = align_addr (addr, FOUR_MB);
|
||||
if (addr >= end)
|
||||
if (addr + size >= end)
|
||||
return 0;
|
||||
|
||||
if (addr >= grub_phys_start && addr < grub_phys_end)
|
||||
{
|
||||
addr = align_addr (grub_phys_end, FOUR_MB);
|
||||
if (addr >= end)
|
||||
if (addr + size >= end)
|
||||
return 0;
|
||||
}
|
||||
if ((addr + size) >= grub_phys_start
|
||||
&& (addr + size) < grub_phys_end)
|
||||
{
|
||||
addr = align_addr (grub_phys_end, FOUR_MB);
|
||||
if (addr >= end)
|
||||
if (addr + size >= end)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -217,14 +217,14 @@ alloc_phys (grub_addr_t size)
|
||||
if (addr >= linux_paddr && addr < linux_end)
|
||||
{
|
||||
addr = linux_end;
|
||||
if (addr >= end)
|
||||
if (addr + size >= end)
|
||||
return 0;
|
||||
}
|
||||
if ((addr + size) >= linux_paddr
|
||||
&& (addr + size) < linux_end)
|
||||
{
|
||||
addr = linux_end;
|
||||
if (addr >= end)
|
||||
if (addr + size >= end)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user