[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 02/11] xenfb.c: avoid expensive loops when prod <= ou
From: |
Stefano Stabellini |
Subject: |
[Qemu-devel] [PULL 02/11] xenfb.c: avoid expensive loops when prod <= out_cons |
Date: |
Thu, 21 Jan 2016 17:01:21 +0000 |
If the frontend sets out_cons to a value higher than out_prod, it will
cause xenfb_handle_events to loop about 2^32 times. Avoid that by using
better checks at the beginning of the function.
Signed-off-by: Stefano Stabellini <address@hidden>
Reported-by: Ling Liu <address@hidden>
---
hw/display/xenfb.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 4e2a27a..8eb3046 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -789,8 +789,9 @@ static void xenfb_handle_events(struct XenFB *xenfb)
prod = page->out_prod;
out_cons = page->out_cons;
- if (prod == out_cons)
- return;
+ if (prod - out_cons >= XENFB_OUT_RING_LEN) {
+ return;
+ }
xen_rmb(); /* ensure we see ring contents up to prod */
for (cons = out_cons; cons != prod; cons++) {
union xenfb_out_event *event = &XENFB_OUT_RING_REF(page, cons);
--
1.7.10.4
- [Qemu-devel] [PULL 0/11] xen-20160121, Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 07/11] Xen: use qemu_strtoul instead of strtol, Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 04/11] xen-hvm: Clean up xen_ram_alloc() error handling, Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 10/11] Add Error **errp for xen_pt_config_init(), Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 03/11] xen-hvm: Clean up xen_hvm_init() error handling, Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 05/11] xen-pvdevice: convert to realize(), Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 01/11] MAINTAINERS: update Xen files, Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 06/11] Change xen_host_pci_sysfs_path() to return void, Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 08/11] Add Error **errp for xen_host_pci_device_get(), Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 09/11] Add Error **errp for xen_pt_setup_vga(), Stefano Stabellini, 2016/01/21
- [Qemu-devel] [PULL 02/11] xenfb.c: avoid expensive loops when prod <= out_cons,
Stefano Stabellini <=
- [Qemu-devel] [PULL 11/11] Xen PCI passthru: convert to realize(), Stefano Stabellini, 2016/01/21
- Re: [Qemu-devel] [PULL 0/11] xen-20160121, Peter Maydell, 2016/01/21