diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-29 01:53:20 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-29 01:53:20 +0000 |
commit | cf2d385c43b4387bec5a546c9b85ac654273cfa3 (patch) | |
tree | 91233233f392c3c1762dfc336ef4f2f51454e9a3 /vnc.c | |
parent | 2abec30bcf132b4f9e5911c4155e2a32a33665e9 (diff) | |
download | qemu-cf2d385c43b4387bec5a546c9b85ac654273cfa3.zip qemu-cf2d385c43b4387bec5a546c9b85ac654273cfa3.tar.gz qemu-cf2d385c43b4387bec5a546c9b85ac654273cfa3.tar.bz2 |
Crop VNC update requests to avoid segfaults, by Thomas Tuttle.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2741 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'vnc.c')
-rw-r--r-- | vnc.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -852,6 +852,15 @@ static void framebuffer_update_request(VncState *vs, int incremental, int x_position, int y_position, int w, int h) { + if (x_position > vs->ds->width) + x_position = vs->ds->width; + if (y_position > vs->ds->height) + y_position = vs->ds->height; + if (x_position + w >= vs->ds->width) + w = vs->ds->width - x_position; + if (y_position + h >= vs->ds->height) + h = vs->ds->height - y_position; + int i; vs->need_update = 1; if (!incremental) { |