From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O1vBO-0002Bs-Hb for qemu-devel@nongnu.org; Wed, 14 Apr 2010 01:30:38 -0400 Received: from [140.186.70.92] (port=47203 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O1vBM-0002BD-TO for qemu-devel@nongnu.org; Wed, 14 Apr 2010 01:30:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O1vBL-0005xs-FZ for qemu-devel@nongnu.org; Wed, 14 Apr 2010 01:30:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60166) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O1vBL-0005xl-3s for qemu-devel@nongnu.org; Wed, 14 Apr 2010 01:30:35 -0400 From: Amit Shah Date: Wed, 14 Apr 2010 10:58:23 +0530 Message-Id: <1271222917-7803-4-git-send-email-amit.shah@redhat.com> In-Reply-To: <1271222917-7803-3-git-send-email-amit.shah@redhat.com> References: <1271222917-7803-1-git-send-email-amit.shah@redhat.com> <1271222917-7803-2-git-send-email-amit.shah@redhat.com> <1271222917-7803-3-git-send-email-amit.shah@redhat.com> Subject: [Qemu-devel] [PATCH v5 03/17] virtio-serial: save/load: Ensure we have hot-plugged ports instantiated List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu list , Amit Shah , Gerd Hoffmann , Juan Quintela If some ports that were hot-plugged on the source are not available on the destination, fail migration instead of trying to deref a NULL pointer. Signed-off-by: Amit Shah Reported-by: Juan Quintela --- hw/virtio-serial-bus.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index d31e62d..5316ef6 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -451,6 +451,13 @@ static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) id = qemu_get_be32(f); port = find_port_by_id(s, id); + if (!port) { + /* + * The requested port was hot-plugged on the source but we + * don't have it + */ + return -EINVAL; + } port->guest_connected = qemu_get_byte(f); } -- 1.6.2.5