From patchwork Thu Nov 8 13:23:16 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: dunrong huang X-Patchwork-Id: 197835 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 CFBAB2C0156 for ; Fri, 9 Nov 2012 00:23:44 +1100 (EST) Received: from localhost ([::1]:47806 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWS58-0002Hd-GA for incoming@patchwork.ozlabs.org; Thu, 08 Nov 2012 08:23:42 -0500 Received: from eggs.gnu.org ([208.118.235.92]:58653) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWS4y-0002HM-5r for qemu-devel@nongnu.org; Thu, 08 Nov 2012 08:23:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TWS4s-0003St-8f for qemu-devel@nongnu.org; Thu, 08 Nov 2012 08:23:32 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:55134) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWS4s-0003Se-25 for qemu-devel@nongnu.org; Thu, 08 Nov 2012 08:23:26 -0500 Received: by mail-pa0-f45.google.com with SMTP id fb10so1942367pad.4 for ; Thu, 08 Nov 2012 05:23:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer; bh=oQwYYtws/HvEeYLKL/a47iZZINi7zX2zX1t6IOg/7yc=; b=I12DawPjJG3Z8Zy74uHT/hM232AOsSboaVUl2BU9n7qs5gWT5DOKMSopNWeXcZQmwf bvvcm6UxRilJAjz2nnHYeRzvyUk6dxUHKpTUDq/jxyxtmGQBFex7pSjwVNM0bZMv8/X9 jV27iDPxbZumcn8hLTxnFhHBqpbHNqfaZC4VqK5pDTkHLJkFJKb44K/xZhGrGg8x6mfv yH6t1K/suEe1s8ZEJv6oB/8RUQpjpcomu/FBV5uR6DMBqD8zweDYqtXD5FkY6CwBFPQE cJ9OYRdEA7N+wm3wL4DePMzemScr0N125TkyAeK7jMMJYvdhP4OectQA4LM1sQOfxlVG FWIQ== Received: by 10.68.254.8 with SMTP id ae8mr9166519pbd.46.1352381004256; Thu, 08 Nov 2012 05:23:24 -0800 (PST) Received: from riegamaths@gmail.com ([221.122.32.18]) by mx.google.com with ESMTPS id i4sm16132724pav.20.2012.11.08.05.23.20 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 08 Nov 2012 05:23:23 -0800 (PST) Received: by riegamaths@gmail.com (sSMTP sendmail emulation); Thu, 08 Nov 2012 21:23:16 +0800 From: Dunrong Huang To: qemu-devel Date: Thu, 8 Nov 2012 21:23:16 +0800 Message-Id: <1352380996-25474-1-git-send-email-riegamaths@gmail.com> X-Mailer: git-send-email 1.8.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.220.45 Cc: Gerd Hoffmann Subject: [Qemu-devel] [PATCH] ui/spice-display: Avoid segment fault when spice is enabled without qxl 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 (gdb) r -enable-kvm -m 512 -spice port=5900,addr=0.0.0.0,disable-ticketing ArchLinux.img Starting program: /root/usr/bin/qemu-system-x86_64 -enable-kvm -m 512 -spice port=5900,addr=0.0.0.0,disable-ticketing ArchLinux.img warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". [New Thread 0x7fffeed93700 (LWP 23838)] [New Thread 0x7fffee391700 (LWP 23839)] Program received signal SIGSEGV, Segmentation fault. 0x00005555557df97d in qemu_spice_destroy_primary_surface (ssd=0x55555611ca80, id=0, async=QXL_SYNC) at ui/spice-display.c:119 119 ssd->worker->destroy_primary_surface(ssd->worker, id); (gdb) bt ssd=0x55555611ca80, id=0, async=QXL_SYNC) at ui/spice-display.c:119 at ui/spice-display.c:343 at ui/spice-display.c:397 at ui/spice-display.c:566 dcl=0x555555cdb040) at ./console.h:218 at ui/spice-display.c:585 envp=0x7fffffffda18) at vl.c:3902 (gdb) p ssd->worker $1 = (QXLWorker *) 0x0 ... ... Before qemu_spice_add_interface() was called, sdpy.worker was not be initialized yet, in this case, segment fault occurred while qemu_spice_display_resize() was called. Signed-off-by: Dunrong Huang --- ui/spice-display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/spice-display.c b/ui/spice-display.c index fb99148..b256caa 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -562,7 +562,9 @@ static void display_update(struct DisplayState *ds, int x, int y, int w, int h) static void display_resize(struct DisplayState *ds) { - qemu_spice_display_resize(&sdpy); + if (sdpy.worker) { + qemu_spice_display_resize(&sdpy); + } } static void display_refresh(struct DisplayState *ds)