dcavalca / rpms / qemu

Forked from rpms/qemu 11 months ago
Clone

Blame 0512-qxl-update_area_io-cleanup-invalid-parameters-handli.patch

5544c1
From 2bbe4bb8c12976312c9421489f7568a70e5ffae3 Mon Sep 17 00:00:00 2001
Hans de Goede 5ba1a7
From: Michael Tokarev <mjt@tls.msk.ru>
Hans de Goede 5ba1a7
Date: Wed, 19 Sep 2012 17:41:26 +0400
5544c1
Subject: [PATCH] qxl/update_area_io: cleanup invalid parameters handling
Hans de Goede 5ba1a7
Hans de Goede 5ba1a7
This cleans up two additions of almost the same code in commits
Hans de Goede 5ba1a7
511b13e2c9 and ccc2960d654.  While at it, make error paths
Hans de Goede 5ba1a7
consistent (always use 'break' instead of 'return').
Hans de Goede 5ba1a7
Hans de Goede 5ba1a7
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Hans de Goede 5ba1a7
Cc: Dunrong Huang <riegamaths@gmail.com>
Hans de Goede 5ba1a7
Cc: Alon Levy <alevy@redhat.com>
Hans de Goede 5ba1a7
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede 5ba1a7
---
Hans de Goede 5ba1a7
 hw/qxl.c | 13 +++----------
Hans de Goede 5ba1a7
 1 file changed, 3 insertions(+), 10 deletions(-)
Hans de Goede 5ba1a7
Hans de Goede 5ba1a7
diff --git a/hw/qxl.c b/hw/qxl.c
5544c1
index 0695872..720363f 100644
Hans de Goede 5ba1a7
--- a/hw/qxl.c
Hans de Goede 5ba1a7
+++ b/hw/qxl.c
5544c1
@@ -1547,20 +1547,13 @@ async_common:
Hans de Goede 5ba1a7
         if (d->ram->update_surface > d->ssd.num_surfaces) {
Hans de Goede 5ba1a7
             qxl_set_guest_bug(d, "QXL_IO_UPDATE_AREA: invalid surface id %d\n",
Hans de Goede 5ba1a7
                               d->ram->update_surface);
Hans de Goede 5ba1a7
-            return;
Hans de Goede 5ba1a7
+            break;
Hans de Goede 5ba1a7
         }
Hans de Goede 5ba1a7
-        if (update.left >= update.right || update.top >= update.bottom) {
Hans de Goede 5ba1a7
+        if (update.left >= update.right || update.top >= update.bottom ||
Hans de Goede 5ba1a7
+            update.left < 0 || update.top < 0) {
Hans de Goede 5ba1a7
             qxl_set_guest_bug(d,
Hans de Goede 5ba1a7
                     "QXL_IO_UPDATE_AREA: invalid area (%ux%u)x(%ux%u)\n",
Hans de Goede 5ba1a7
                     update.left, update.top, update.right, update.bottom);
Hans de Goede 5ba1a7
-            return;
Hans de Goede 5ba1a7
-        }
Hans de Goede 5ba1a7
-
Hans de Goede 5ba1a7
-        if (update.left < 0 || update.top < 0 || update.left >= update.right ||
Hans de Goede 5ba1a7
-            update.top >= update.bottom) {
Hans de Goede 5ba1a7
-            qxl_set_guest_bug(d, "QXL_IO_UPDATE_AREA: "
Hans de Goede 5ba1a7
-                              "invalid area(%d,%d,%d,%d)\n", update.left,
Hans de Goede 5ba1a7
-                              update.right, update.top, update.bottom);
Hans de Goede 5ba1a7
             break;
Hans de Goede 5ba1a7
         }
Hans de Goede 5ba1a7
         if (async == QXL_ASYNC) {
Hans de Goede 5ba1a7
-- 
5544c1
1.7.12.1
Hans de Goede 5ba1a7