diff --git a/tools/virsh-host.c b/tools/virsh-host.c index 16f504bafe..b7f86bdd91 100644 --- a/tools/virsh-host.c +++ b/tools/virsh-host.c @@ -1130,13 +1130,20 @@ vshExtractCPUDefXMLs(vshControl *ctl, xmlDocPtr xml = NULL; xmlXPathContextPtr ctxt = NULL; xmlNodePtr *nodes = NULL; + char *doc; size_t i; int n; if (virFileReadAll(xmlFile, VSH_MAX_XML_FILE, &buffer) < 0) goto error; - if (virAsprintf(&xmlStr, "%s", buffer) < 0) + /* Strip possible XML declaration */ + if (STRPREFIX(buffer, ""))) + doc += 2; + else + doc = buffer; + + if (virAsprintf(&xmlStr, "%s", doc) < 0) goto error; if (!(xml = virXMLParseStringCtxt(xmlStr, xmlFile, &ctxt)))