From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37892) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTAm1-0004y2-HD for qemu-devel@nongnu.org; Fri, 19 Apr 2013 08:50:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UTAm0-00043m-B1 for qemu-devel@nongnu.org; Fri, 19 Apr 2013 08:50:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48801) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTAm0-00043f-2n for qemu-devel@nongnu.org; Fri, 19 Apr 2013 08:50:40 -0400 From: Luiz Capitulino Date: Fri, 19 Apr 2013 08:50:32 -0400 Message-Id: <1366375833-995-2-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1366375833-995-1-git-send-email-lcapitulino@redhat.com> References: <1366375833-995-1-git-send-email-lcapitulino@redhat.com> Subject: [Qemu-devel] [PULL 1/2] monitor: fix the wrong order of releasing keys List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com From: Amos Kong (qemu) sendkey ctrl_r-scroll_lock-scroll_lock Executing this command could not let Windows guest panic, it caused by the wrong order of releasing keys. This problem was introduced by commit e4c8f004c55d9da3eae3e14df740238bf805b5d6. The right release order should be starting from last item. Signed-off-by: Amos Kong Signed-off-by: Luiz Capitulino --- ui/input.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ui/input.c b/ui/input.c index 9abef0c..ecfeb43 100644 --- a/ui/input.c +++ b/ui/input.c @@ -234,13 +234,11 @@ static void free_keycodes(void) static void release_keys(void *opaque) { - int i; - - for (i = 0; i < keycodes_size; i++) { - if (keycodes[i] & 0x80) { + while (keycodes_size > 0) { + if (keycodes[--keycodes_size] & 0x80) { kbd_put_keycode(0xe0); } - kbd_put_keycode(keycodes[i]| 0x80); + kbd_put_keycode(keycodes[keycodes_size] | 0x80); } free_keycodes(); -- 1.8.1.4