[libvirt] [PATCH] avoid dumpXML segfault with recent Xen (3.4.0)

Daniel Veillard veillard at redhat.com
Fri Jun 26 18:21:39 UTC 2009


  This is basically the patch by Sascha at
    https://bugzilla.redhat.com/show_bug.cgi?id=503254
with a couple of cleanups. I think it's low risk, and avoid a crash so I
commited it.
Basically ths SXPR syntax changed from (type vnc) to (vnc 1) for VNC
vfb devices, and assuming something similar for sdl. The code checks
first for type then backoff for vnc/sdl  so I think this is backward
compatible.

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/
-------------- next part --------------
Index: src/xend_internal.c
===================================================================
RCS file: /data/cvs/libxen/src/xend_internal.c,v
retrieving revision 1.264
diff -u -u -p -r1.264 xend_internal.c
--- src/xend_internal.c	12 Jun 2009 12:06:15 -0000	1.264
+++ src/xend_internal.c	26 Jun 2009 18:13:27 -0000
@@ -2079,7 +2079,15 @@ xenDaemonParseSxprGraphicsNew(virConnect
         if (sexpr_lookup(node, "device/vfb")) {
             /* New style graphics config for PV guests in >= 3.0.4,
              * or for HVM guests in >= 3.0.5 */
-            tmp = sexpr_node(node, "device/vfb/type");
+            if (sexpr_node(node, "device/vfb/type")) {
+                tmp = sexpr_node(node, "device/vfb/type");
+            } else if (sexpr_node(node, "device/vfb/vnc")) {
+                tmp = "vnc";
+            } else if (sexpr_node(node, "device/vfb/sdl")) {
+                tmp = "sdl";
+            } else {
+                tmp = "unknown";
+            }
 
             if (VIR_ALLOC(graphics) < 0)
                 goto no_memory;


More information about the libvir-list mailing list