+2010-02-13 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * loader/sparc64/ieee1275/linux.c (alloc_phys): Correct bounds checking.
+
2010-02-13 Vladimir Serbinenko <phcoder@gmail.com>
* kern/sparc64/ieee1275/crt0.S (codestart): Move modules backwards.
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;
}
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;
}
}