Jan Beulich
2012-Nov-28 07:44 UTC
[PATCH] ACPI: fix return value of XEN_PM_PDC platform op
Should return -EFAULT when copying to guest memory fails. Once touching this code, also switch to using the more relaxed copy function (copying from the same guest memory already validated the virtual address range). Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/drivers/acpi/pmstat.c +++ b/xen/drivers/acpi/pmstat.c @@ -521,8 +521,8 @@ int acpi_set_pdc_bits(u32 acpi_id, XEN_G ACPI_PDC_SMP_C1PT) & ~mask; ret = arch_acpi_set_pdc_bits(acpi_id, bits, mask); } - if ( !ret ) - ret = copy_to_guest_offset(pdc, 2, bits + 2, 1); + if ( !ret && __copy_to_guest_offset(pdc, 2, bits + 2, 1) ) + ret = -EFAULT; return ret; } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Keir Fraser
2012-Nov-28 08:28 UTC
Re: [PATCH] ACPI: fix return value of XEN_PM_PDC platform op
On 28/11/2012 07:44, "Jan Beulich" <JBeulich@suse.com> wrote:> Should return -EFAULT when copying to guest memory fails. > > Once touching this code, also switch to using the more relaxed copy > function (copying from the same guest memory already validated the > virtual address range). > > Signed-off-by: Jan Beulich <jbeulich@suse.com>Acked-by: Keir Fraser <keir@xen.org>> --- a/xen/drivers/acpi/pmstat.c > +++ b/xen/drivers/acpi/pmstat.c > @@ -521,8 +521,8 @@ int acpi_set_pdc_bits(u32 acpi_id, XEN_G > ACPI_PDC_SMP_C1PT) & ~mask; > ret = arch_acpi_set_pdc_bits(acpi_id, bits, mask); > } > - if ( !ret ) > - ret = copy_to_guest_offset(pdc, 2, bits + 2, 1); > + if ( !ret && __copy_to_guest_offset(pdc, 2, bits + 2, 1) ) > + ret = -EFAULT; > > return ret; > } > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel