summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2012-07-29 10:27:11 +0200
committerAlon Levy <alevy@redhat.com>2012-08-27 16:17:17 +0300
commite7aee13e571662f9af87ef90533aa77c754d7747 (patch)
tree764d1eb404e9de11d2c1e9255b84c86aea8b770d
parentfd39b2c24653521ca3d6fdf8691cb265b72ef9a0 (diff)
downloadspice-e7aee13e571662f9af87ef90533aa77c754d7747.tar.gz
spice-e7aee13e571662f9af87ef90533aa77c754d7747.tar.xz
spice-e7aee13e571662f9af87ef90533aa77c754d7747.zip
server/red_worker: handle_dev_update_area: fail if invalid area
-rw-r--r--server/red_worker.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 28fed603..2fa0e3ae 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -4592,6 +4592,12 @@ static void red_update_area(RedWorker *worker, const SpiceRect *area, int surfac
#endif
spice_debug("surface %d: area ==>", surface_id);
rect_debug(area);
+
+ spice_return_if_fail(surface_id >= 0 && surface_id < NUM_SURFACES);
+ spice_return_if_fail(area);
+ spice_return_if_fail(area->left >= 0 && area->top >= 0 &&
+ area->left < area->right && area->top < area->bottom);
+
surface = &worker->surfaces[surface_id];
last = NULL;