Re: [libvirt] [PATCHv2 19/27] xenapi: reject unknown flags
On 07/13/2011 07:04 AM, Matthias Bolte wrote: > 2011/7/8 Eric Blake : >> * src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot) >> (xenapiDomainGetXMLDesc): Reject unknown flags. >> --- >> src/xenapi/xenapi_driver.c | 13 ++--- >> 1 files changed, 10 insertions(+), 3 deletions(-) > >> @@ -1309,6 +1314,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int >> flags ATTRIBUTE_UNUSED) >> struct xen_vif_set *vif_set = NULL; >> char *xml; >> >> +virCheckFlags(0, NULL); >> + >> if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; >> if (vms->size != 1) { >> xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, > > You found a bug, but made it worse instead of fixing it. > xenapiDomainGetXMLDesc should pass the flags to virDomainDefFormat > instead of passing 0. > > ACK, with passing flags to virDomainDefFormat instead of ignoring it. Pushed with this squashed in: diff --git i/src/xenapi/xenapi_driver.c w/src/xenapi/xenapi_driver.c index 5d5e810..aa616ca 100644 --- i/src/xenapi/xenapi_driver.c +++ w/src/xenapi/xenapi_driver.c @@ -1316,7 +1316,9 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) struct xen_vif_set *vif_set = NULL; char *xml; -virCheckFlags(0, NULL); +virCheckFlags(VIR_DOMAIN_XML_SECURE | + VIR_DOMAIN_XML_INACTIVE | + VIR_DOMAIN_XML_UPDATE_CPU, NULL); if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; if (vms->size != 1) { @@ -1483,7 +1485,7 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) xen_vif_set_free(vif_set); } if (vms) xen_vm_set_free(vms); -xml = virDomainDefFormat(defPtr, 0); +xml = virDomainDefFormat(defPtr, flags); virDomainDefFree(defPtr); return xml; -- Eric Blake ebl...@redhat.com+1-801-349-2682 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCHv2 19/27] xenapi: reject unknown flags
2011/7/8 Eric Blake : > * src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot) > (xenapiDomainGetXMLDesc): Reject unknown flags. > --- > src/xenapi/xenapi_driver.c | 13 ++--- > 1 files changed, 10 insertions(+), 3 deletions(-) > @@ -1309,6 +1314,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int > flags ATTRIBUTE_UNUSED) > struct xen_vif_set *vif_set = NULL; > char *xml; > > + virCheckFlags(0, NULL); > + > if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; > if (vms->size != 1) { > xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, You found a bug, but made it worse instead of fixing it. xenapiDomainGetXMLDesc should pass the flags to virDomainDefFormat instead of passing 0. ACK, with passing flags to virDomainDefFormat instead of ignoring it. -- Matthias Bolte http://photron.blogspot.com -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
[libvirt] [PATCHv2 19/27] xenapi: reject unknown flags
* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot) (xenapiDomainGetXMLDesc): Reject unknown flags. --- src/xenapi/xenapi_driver.c | 13 ++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index 1c06f75..ba993f2 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -92,12 +92,14 @@ getCapsObject (void) */ static virDrvOpenStatus xenapiOpen (virConnectPtr conn, virConnectAuthPtr auth, -unsigned int flags ATTRIBUTE_UNUSED) +unsigned int flags) { char *username = NULL; char *password = NULL; struct _xenapiPrivate *privP = NULL; +virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR); + if (conn->uri == NULL || conn->uri->scheme == NULL || STRCASENEQ(conn->uri->scheme, "XenAPI")) { return VIR_DRV_OPEN_DECLINED; @@ -802,12 +804,15 @@ xenapiDomainShutdown (virDomainPtr dom) * Returns 0 on success or -1 in case of error */ static int -xenapiDomainReboot (virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +xenapiDomainReboot (virDomainPtr dom, unsigned int flags) { /* vm.clean_reboot */ xen_vm vm; struct xen_vm_set *vms; xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session; + +virCheckFlags(0, -1); + if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) { if (vms->size != 1) { xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, @@ -1295,7 +1300,7 @@ xenapiDomainGetMaxVcpus (virDomainPtr dom) * Returns XML string of the domain configuration on success or -1 in case of error */ static char * -xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) +xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { xen_vm vm=NULL; xen_vm_set *vms; @@ -1309,6 +1314,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) struct xen_vif_set *vif_set = NULL; char *xml; +virCheckFlags(0, NULL); + if (!xen_vm_get_by_name_label(session, &vms, dom->name)) return NULL; if (vms->size != 1) { xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR, -- 1.7.4.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list