On Fri, Dec 14, 2012 at 06:37:41PM +0800, Osier Yang wrote: > On 2012年12月01日 04:26, Daniel P. Berrange wrote: > >diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c > >index 939d213..e61eabe 100644 > >--- a/src/conf/domain_audit.c > >+++ b/src/conf/domain_audit.c > >@@ -260,42 +260,72 @@ virDomainAuditHostdev(virDomainObjPtr vm, virDomainHostdevDefPtr hostdev, > > void virDomainHostdevDefFree(virDomainHostdevDefPtr def) > >@@ -3026,6 +3041,71 @@ error: > > return ret; > > } > > > >+static int > >+virDomainHostdevDefParseXMLCaps(xmlNodePtr node ATTRIBUTE_UNUSED, > >+ xmlXPathContextPtr ctxt, > >+ const char *type, > >+ virDomainHostdevDefPtr def) > >+{ > >+ xmlNodePtr sourcenode; > >+ int ret = -1; > >+ > >+ /* @type is passed in from the caller rather than read from the > >+ * xml document, because it is specified in different places for > >+ * different kinds of defs - it is an attribute of > >+ *<source>/<address> for an intelligent hostdev (<interface>), > >+ * but an attribute of the toplevel element for a standard > >+ *<hostdev>. (the functions we're going to call expect address > >+ * type to already be known). > > Per the @type is passed in from caller... Correct, but the caller gets that value from the XML which may result in NULL being passed > > >+ */ > >+ if (type) { > >+ if ((def->source.caps.type > >+ = virDomainHostdevCapsTypeFromString(type))< 0) { > >+ virReportError(VIR_ERR_XML_ERROR, > >+ _("unknown host device source address type '%s'"), > >+ type); > >+ goto error; > >+ } > >+ } else { > >+ virReportError(VIR_ERR_XML_ERROR, > >+ "%s", _("missing source address type")); > >+ goto error; > >+ } > > But this indicates a parsing error. So this check is correct. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list