
On Thu, May 09, 2013 at 01:07:59PM -0600, Jim Fehlig wrote:
Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange@redhat.com>
Introduce use of a virDomainDefPtr in the domain property APIs to simplify introduction of ACL security checks. The virDomainPtr cannot be safely used, since the app may have supplied mis-matching name/uuid/id fields. eg the name points to domain X, while the uuid points to domain Y. Resolving the virDomainPtr to a virDomainDefPtr ensures a consistent name/uuid/id set.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
xenUnifiedDomainGetOSType(virDomainPtr dom) { xenUnifiedPrivatePtr priv = dom->conn->privateData; + char *ret = NULL; + virDomainDefPtr def;
- if (dom->id < 0) { + if (!(def = xenGetDomainDefForDom(dom))) + goto cleanup; + + if (def->id < 0) { if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to query OS type for inactive domain")); return NULL; } else { - return xenDaemonDomainGetOSType(dom); + ret = xenHypervisorDomainGetOSType(dom->conn, def);
Should still call xenDaemonDomainGetOSType here since id < 0 right?
} } else { - return xenHypervisorDomainGetOSType(dom); + ret = xenDaemonDomainGetOSType(dom->conn, def);
And call the hypervisor one here when the domain is active.
Yes, dunno how i managed to screw that up :-( 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 :|