mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 06:02:38 +00:00
KVM: PPC: Book3S HV: Add sanity check to copy_tofrom_guest
Both paths into __kvmhv_copy_tofrom_guest_radix ensure that we arrive with an effective address that is smaller than our total addressable space and addresses quadrant 0. - The H_COPY_TOFROM_GUEST hypercall path rejects the call with H_PARAMETER if the effective address has any of the twelve most significant bits set. - The kvmhv_copy_tofrom_guest_radix path clears the top twelve bits before calling the internal function. Although the callers make sure that the effective address is sane, any future use of the function is exposed to a programming error, so add a sanity check. Suggested-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210805212616.2641017-3-farosas@linux.ibm.com
This commit is contained in:
parent
5d7d6dac8f
commit
c232461c0c
@ -44,6 +44,9 @@ unsigned long __kvmhv_copy_tofrom_guest_radix(int lpid, int pid,
|
||||
(to != NULL) ? __pa(to): 0,
|
||||
(from != NULL) ? __pa(from): 0, n);
|
||||
|
||||
if (eaddr & (0xFFFUL << 52))
|
||||
return ret;
|
||||
|
||||
quadrant = 1;
|
||||
if (!pid)
|
||||
quadrant = 2;
|
||||
|
Loading…
Reference in New Issue
Block a user