Re: [libvirt] [PATCHv2 19/27] xenapi: reject unknown flags

2011-07-13 Thread Eric Blake
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-07-13 Thread Matthias Bolte
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

2011-07-08 Thread 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(-)

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