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

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