Messages in this thread | | | Date | Tue, 14 Oct 2014 10:22:30 +0100 | From | David Vrabel <> | Subject | Re: [PATCH] xen/setup: add paranoid index check and warning |
| |
On 14/10/14 02:19, Martin Kelly wrote: > In a call to set_phys_range_identity, i-1 is used without checking that > i is non-zero. Although unlikely, a bug in the code before it could > cause the value to be 0, leading to erroneous behavior. This patch adds > a check against 0 value and a corresponding warning.
This can only happen if the toolstack supplies a memory map with zero entries. I could see justification for adding a panic at the top of this function in this case, but I can't see the usefulness of this warning.
> --- a/arch/x86/xen/setup.c > +++ b/arch/x86/xen/setup.c > @@ -671,7 +671,10 @@ char * __init xen_memory_setup(void) > * PFNs above MAX_P2M_PFN are considered identity mapped as > * well. > */ > - set_phys_range_identity(map[i-1].addr / PAGE_SIZE, ~0ul); > + if (i > 0) > + set_phys_range_identity(map[i-1].addr / PAGE_SIZE, ~0ul); > + else > + WARN(1, "Something went wrong clamping memory to a factor of EXTRA_MEM_RATIO!"); > > /* > * In domU, the ISA region is normal, usable memory, but we >
| |