qxl/update_area_io: cleanup invalid parameters handling

This cleans up two additions of almost the same code in commits
511b13e2c9 and ccc2960d65.  While at it, make error paths
consistent (always use 'break' instead of 'return').

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Cc: Dunrong Huang <riegamaths@gmail.com>
Cc: Alon Levy <alevy@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
master
Michael Tokarev 2012-09-19 17:41:26 +04:00 committed by Gerd Hoffmann
parent 0ec8df3974
commit 36a03e0ba5
1 changed files with 3 additions and 10 deletions

View File

@ -1547,20 +1547,13 @@ async_common:
if (d->ram->update_surface > d->ssd.num_surfaces) {
qxl_set_guest_bug(d, "QXL_IO_UPDATE_AREA: invalid surface id %d\n",
d->ram->update_surface);
return;
break;
}
if (update.left >= update.right || update.top >= update.bottom) {
if (update.left >= update.right || update.top >= update.bottom ||
update.left < 0 || update.top < 0) {
qxl_set_guest_bug(d,
"QXL_IO_UPDATE_AREA: invalid area (%ux%u)x(%ux%u)\n",
update.left, update.top, update.right, update.bottom);
return;
}
if (update.left < 0 || update.top < 0 || update.left >= update.right ||
update.top >= update.bottom) {
qxl_set_guest_bug(d, "QXL_IO_UPDATE_AREA: "
"invalid area(%d,%d,%d,%d)\n", update.left,
update.right, update.top, update.bottom);
break;
}
if (async == QXL_ASYNC) {