From: Daniel P. Berrange Date: Thu, 2 May 2013 13:36:45 +0000 (+0100) Subject: Simplify the Xen domain autostart driver method X-Git-Tag: CVE-2013-1962~120 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7329f91f2698ae4ed33d5cb271408082ad37234c;p=thirdparty%2Flibvirt.git Simplify the Xen domain autostart driver method Unconditionally call into the XenD or XM drivers for autostart handling, since they are guaranteed to be open --- diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 797359aa59..703116ffb7 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1475,16 +1475,10 @@ xenUnifiedDomainGetAutostart(virDomainPtr dom, int *autostart) { xenUnifiedPrivatePtr priv = dom->conn->privateData; - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) { - if (priv->opened[XEN_UNIFIED_XM_OFFSET]) - return xenXMDomainGetAutostart(dom, autostart); - } else { - if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) - return xenDaemonDomainGetAutostart(dom, autostart); - } - - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); - return -1; + if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) + return xenXMDomainGetAutostart(dom, autostart); + else + return xenDaemonDomainGetAutostart(dom, autostart); } static int @@ -1492,16 +1486,10 @@ xenUnifiedDomainSetAutostart(virDomainPtr dom, int autostart) { xenUnifiedPrivatePtr priv = dom->conn->privateData; - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) { - if (priv->opened[XEN_UNIFIED_XM_OFFSET]) - return xenXMDomainSetAutostart(dom, autostart); - } else { - if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) - return xenDaemonDomainSetAutostart(dom, autostart); - } - - virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__); - return -1; + if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) + return xenXMDomainSetAutostart(dom, autostart); + else + return xenDaemonDomainSetAutostart(dom, autostart); } static char * diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index 680690708d..53a8ca0275 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -2540,13 +2540,6 @@ xenDaemonDomainGetAutostart(virDomainPtr domain, int *autostart) { struct sexpr *root; const char *tmp; - xenUnifiedPrivatePtr priv = domain->conn->privateData; - - /* xm_internal.c (the support for defined domains from /etc/xen - * config files used by old Xen) will handle this. - */ - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) - return -1; root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name); if (root == NULL) { @@ -2573,13 +2566,6 @@ xenDaemonDomainSetAutostart(virDomainPtr domain, int autostart) virBuffer buffer = VIR_BUFFER_INITIALIZER; char *content = NULL; int ret = -1; - xenUnifiedPrivatePtr priv = domain->conn->privateData; - - /* xm_internal.c (the support for defined domains from /etc/xen - * config files used by old Xen) will handle this. - */ - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) - return -1; root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name); if (root == NULL) {