From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] [PATCH] Fix SIGFPE for vnc display of width/height = 1 Date: Wed, 17 Mar 2010 10:59:42 -0500 Message-ID: <4BA0FC6E.5090805@codemonkey.ws> References: <20100308143449.GA4084@arachsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org To: Chris Webb Return-path: Received: from mail-pz0-f200.google.com ([209.85.222.200]:55173 "EHLO mail-pz0-f200.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753467Ab0CQP7s (ORCPT ); Wed, 17 Mar 2010 11:59:48 -0400 Received: by pzk38 with SMTP id 38so913172pzk.33 for ; Wed, 17 Mar 2010 08:59:47 -0700 (PDT) In-Reply-To: <20100308143449.GA4084@arachsys.com> Sender: kvm-owner@vger.kernel.org List-ID: On 03/08/2010 08:34 AM, Chris Webb wrote: > During boot, the screen gets resized to height 1 and a mouse click at this > point will cause a division by zero when calculating the absolute pointer > position from the pixel (x, y). Return a click in the middle of the screen > instead in this case. > > Signed-off-by: Chris Webb > Applied. Thanks. Regards, Anthony Liguori > --- > vnc.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/vnc.c b/vnc.c > index 01353a9..676a707 100644 > --- a/vnc.c > +++ b/vnc.c > @@ -1457,8 +1457,10 @@ static void pointer_event(VncState *vs, int button_mask, int x, int y) > dz = 1; > > if (vs->absolute) { > - kbd_mouse_event(x * 0x7FFF / (ds_get_width(vs->ds) - 1), > - y * 0x7FFF / (ds_get_height(vs->ds) - 1), > + kbd_mouse_event(ds_get_width(vs->ds)> 1 ? > + x * 0x7FFF / (ds_get_width(vs->ds) - 1) : 0x4000, > + ds_get_height(vs->ds)> 1 ? > + y * 0x7FFF / (ds_get_height(vs->ds) - 1) : 0x4000, > dz, buttons); > } else if (vnc_has_feature(vs, VNC_FEATURE_POINTER_TYPE_CHANGE)) { > x -= 0x7FFF; >