From patchwork Thu Mar 15 21:00:07 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 147081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 5A510B6EF3 for ; Fri, 16 Mar 2012 08:02:15 +1100 (EST) Received: from localhost ([::1]:49594 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8HoL-00069l-7c for incoming@patchwork.ozlabs.org; Thu, 15 Mar 2012 17:02:13 -0400 Received: from eggs.gnu.org ([208.118.235.92]:53026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8Hnn-0005ax-Fr for qemu-devel@nongnu.org; Thu, 15 Mar 2012 17:01:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S8Hnl-0000Ki-Dx for qemu-devel@nongnu.org; Thu, 15 Mar 2012 17:01:39 -0400 Received: from isrv.corpit.ru ([86.62.121.231]:33405) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8Hnl-0000KR-6p for qemu-devel@nongnu.org; Thu, 15 Mar 2012 17:01:37 -0400 Received: from gandalf.tls.msk.ru (mjt.vpn.tls.msk.ru [192.168.177.99]) by isrv.corpit.ru (Postfix) with ESMTP id A9218A0B21; Fri, 16 Mar 2012 01:01:35 +0400 (MSK) Received: by gandalf.tls.msk.ru (Postfix, from userid 1000) id 94EFA65E8; Fri, 16 Mar 2012 01:00:20 +0400 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Date: Fri, 16 Mar 2012 01:00:07 +0400 Message-Id: <1331845217-21705-2-git-send-email-mjt@msgid.tls.msk.ru> X-Mailer: git-send-email 1.7.9.1 In-Reply-To: <1331845217-21705-1-git-send-email-mjt@msgid.tls.msk.ru> References: <1331845217-21705-1-git-send-email-mjt@msgid.tls.msk.ru> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 86.62.121.231 Cc: Paolo Bonzini , Michael Tokarev Subject: [Qemu-devel] [PATCHv4 01/11] virtio-serial-bus: use correct lengths in control_out() message X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org In case of more than one control message, the code will use size of the largest message so far for all subsequent messages, instead of using size of current one. Fix it. Signed-off-by: Michael Tokarev --- hw/virtio-serial-bus.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index e22940e..abe48ec 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -454,7 +454,7 @@ static void control_out(VirtIODevice *vdev, VirtQueue *vq) len = 0; buf = NULL; while (virtqueue_pop(vq, &elem)) { - size_t cur_len, copied; + size_t cur_len; cur_len = iov_size(elem.out_sg, elem.out_num); /* @@ -467,9 +467,9 @@ static void control_out(VirtIODevice *vdev, VirtQueue *vq) buf = g_malloc(cur_len); len = cur_len; } - copied = iov_to_buf(elem.out_sg, elem.out_num, buf, 0, len); + iov_to_buf(elem.out_sg, elem.out_num, buf, 0, cur_len); - handle_control_message(vser, buf, copied); + handle_control_message(vser, buf, cur_len); virtqueue_push(vq, &elem, 0); } g_free(buf);