]> xenbits.xensource.com Git - libvirt.git/commitdiff
Blank out the 'listenAddr' parameter if empty string
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 18 May 2011 13:52:26 +0000 (09:52 -0400)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 19 May 2011 11:12:45 +0000 (07:12 -0400)
Some bogus apps are generating a VNC/SPICE/RFB listen attribute
with no content. This then causes a failure with the graphics
migration cookie parsing. Blank out the 'listenAddr' parameter
after parsing domain XML if it is the empty string, so the host
default takes over

* src/qemu/qemu_migration.c: Blank out listenAddr parameter
  if empty

src/conf/domain_conf.c

index 3298c80e57a3036dd3888799062db5063d03548e..6129bbc6b468d7200cc1607b7c8438b0baf96f43 100644 (file)
@@ -3904,6 +3904,10 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, int flags) {
         def->data.vnc.socket = virXMLPropString(node, "socket");
         def->data.vnc.keymap = virXMLPropString(node, "keymap");
 
+        if (def->data.vnc.listenAddr &&
+            !def->data.vnc.listenAddr[0])
+            VIR_FREE(def->data.vnc.listenAddr);
+
         if (virDomainGraphicsAuthDefParseXML(node, &def->data.vnc.auth) < 0)
             goto error;
     } else if (def->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) {
@@ -3968,6 +3972,10 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, int flags) {
         }
 
         def->data.rdp.listenAddr = virXMLPropString(node, "listen");
+
+        if (def->data.rdp.listenAddr &&
+            !def->data.rdp.listenAddr[0])
+            VIR_FREE(def->data.rdp.listenAddr);
     } else if (def->type == VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP) {
         char *fullscreen = virXMLPropString(node, "fullscreen");
 
@@ -4031,6 +4039,11 @@ virDomainGraphicsDefParseXML(xmlNodePtr node, int flags) {
 
         def->data.spice.listenAddr = virXMLPropString(node, "listen");
         def->data.spice.keymap = virXMLPropString(node, "keymap");
+
+        if (def->data.spice.listenAddr &&
+            !def->data.spice.listenAddr[0])
+            VIR_FREE(def->data.spice.listenAddr);
+
         if (virDomainGraphicsAuthDefParseXML(node, &def->data.spice.auth) < 0)
             goto error;