]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
vbox: reject unknown flags
authorEric Blake <eblake@redhat.com>
Wed, 6 Jul 2011 23:06:11 +0000 (17:06 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 13 Jul 2011 22:40:07 +0000 (16:40 -0600)
* src/vbox/vbox_driver.c (vboxOpenDummy): Reject unknown flags.
* src/vbox/vbox_tmpl.c (vboxOpen, vboxDomainReboot)
(vboxNetworkOpen, vboxNetworkGetXMLDesc, vboxStorageOpen)
(vboxStorageVolCreateXML, vboxStorageVolDelete)
(vboxStorageVolGetXMLDesc, vboxDomainScreenshot): Likewise.

src/vbox/vbox_driver.c
src/vbox/vbox_tmpl.c

index b20998a2092237690f8cd71c5e421539ae78e30b..430ab406991dfabbefbf6255492a96c0ab900cb2 100644 (file)
@@ -142,9 +142,12 @@ int vboxRegister(void) {
 
 static virDrvOpenStatus vboxOpenDummy(virConnectPtr conn,
                                       virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                      unsigned int flags ATTRIBUTE_UNUSED) {
+                                      unsigned int flags)
+{
     uid_t uid = getuid();
 
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (conn->uri == NULL ||
         conn->uri->scheme == NULL ||
         STRNEQ (conn->uri->scheme, "vbox") ||
index 7003316c1b6c76f4ae7d9835eb18645c442a2b38..6cb9bb4ce610bedab5e55b2736f29bbc3a846f50 100644 (file)
@@ -961,10 +961,13 @@ static void vboxUninitialize(vboxGlobalData *data) {
 
 static virDrvOpenStatus vboxOpen(virConnectPtr conn,
                                  virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                 unsigned int flags ATTRIBUTE_UNUSED) {
+                                 unsigned int flags)
+{
     vboxGlobalData *data = NULL;
     uid_t uid = getuid();
 
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (conn->uri == NULL) {
         conn->uri = xmlParseURI(uid ? "vbox:///session" : "vbox:///system");
         if (conn->uri == NULL) {
@@ -1637,7 +1640,8 @@ cleanup:
     return ret;
 }
 
-static int vboxDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSED) {
+static int vboxDomainReboot(virDomainPtr dom, unsigned int flags)
+{
     VBOX_OBJECT_CHECK(dom->conn, int, -1);
     IMachine *machine    = NULL;
     vboxIID iid = VBOX_IID_INITIALIZER;
@@ -1646,6 +1650,8 @@ static int vboxDomainReboot(virDomainPtr dom, unsigned int flags ATTRIBUTE_UNUSE
     PRBool isAccessible  = PR_FALSE;
     nsresult rc;
 
+    virCheckFlags(0, -1);
+
     vboxIIDFromUUID(&iid, dom->uuid);
     rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine);
     if (NS_FAILED(rc)) {
@@ -6939,9 +6945,12 @@ static int vboxDomainEventDeregisterAny(virConnectPtr conn,
  */
 static virDrvOpenStatus vboxNetworkOpen(virConnectPtr conn,
                                         virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                        unsigned int flags ATTRIBUTE_UNUSED) {
+                                        unsigned int flags)
+{
     vboxGlobalData *data = conn->privateData;
 
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (STRNEQ(conn->driver->name, "VBOX"))
         goto cleanup;
 
@@ -7576,7 +7585,8 @@ static int vboxNetworkDestroy(virNetworkPtr network) {
 }
 
 static char *vboxNetworkGetXMLDesc(virNetworkPtr network,
-                                   unsigned int flags ATTRIBUTE_UNUSED) {
+                                   unsigned int flags)
+{
     VBOX_OBJECT_HOST_CHECK(network->conn, char *, NULL);
     virNetworkDefPtr def  = NULL;
     virNetworkIpDefPtr ipdef = NULL;
@@ -7584,6 +7594,8 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network,
     PRUnichar *networkInterfaceNameUtf16    = NULL;
     IHostNetworkInterface *networkInterface = NULL;
 
+    virCheckFlags(0, NULL);
+
     if (VIR_ALLOC(def) < 0) {
         virReportOOMError();
         goto cleanup;
@@ -7751,9 +7763,12 @@ cleanup:
 
 static virDrvOpenStatus vboxStorageOpen (virConnectPtr conn,
                                          virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                         unsigned int flags ATTRIBUTE_UNUSED) {
+                                         unsigned int flags)
+{
     vboxGlobalData *data = conn->privateData;
 
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (STRNEQ(conn->driver->name, "VBOX"))
         return VIR_DRV_OPEN_DECLINED;
 
@@ -8096,7 +8111,8 @@ static virStorageVolPtr vboxStorageVolLookupByPath(virConnectPtr conn, const cha
 
 static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool,
                                                 const char *xml,
-                                                unsigned int flags ATTRIBUTE_UNUSED) {
+                                                unsigned int flags)
+{
     VBOX_OBJECT_CHECK(pool->conn, virStorageVolPtr, NULL);
     virStorageVolDefPtr  def  = NULL;
     PRUnichar *hddFormatUtf16 = NULL;
@@ -8104,6 +8120,8 @@ static virStorageVolPtr vboxStorageVolCreateXML(virStoragePoolPtr pool,
     virStoragePoolDef poolDef;
     nsresult rc;
 
+    virCheckFlags(0, NULL);
+
     /* since there is currently one default pool now
      * and virStorageVolDefFormat() just checks it type
      * so just assign it for now, change the behaviour
@@ -8189,7 +8207,8 @@ cleanup:
 }
 
 static int vboxStorageVolDelete(virStorageVolPtr vol,
-                                unsigned int flags ATTRIBUTE_UNUSED) {
+                                unsigned int flags)
+{
     VBOX_OBJECT_CHECK(vol->conn, int, -1);
     vboxIID hddIID = VBOX_IID_INITIALIZER;
     unsigned char uuid[VIR_UUID_BUFLEN];
@@ -8199,6 +8218,8 @@ static int vboxStorageVolDelete(virStorageVolPtr vol,
     int i = 0;
     int j = 0;
 
+    virCheckFlags(0, -1);
+
     if (virUUIDParse(vol->key, uuid) < 0) {
         vboxError(VIR_ERR_INVALID_ARG,
                   _("Could not parse UUID from '%s'"), vol->key);
@@ -8422,7 +8443,8 @@ static int vboxStorageVolGetInfo(virStorageVolPtr vol, virStorageVolInfoPtr info
     return ret;
 }
 
-static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags ATTRIBUTE_UNUSED) {
+static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags)
+{
     VBOX_OBJECT_CHECK(vol->conn, char *, NULL);
     IHardDisk *hardDisk  = NULL;
     unsigned char uuid[VIR_UUID_BUFLEN];
@@ -8432,6 +8454,8 @@ static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol, unsigned int flags A
     int defOk = 0;
     nsresult rc;
 
+    virCheckFlags(0, NULL);
+
     memset(&pool, 0, sizeof(pool));
     memset(&def, 0, sizeof(def));
 
@@ -8595,7 +8619,7 @@ static char *
 vboxDomainScreenshot(virDomainPtr dom,
                      virStreamPtr st,
                      unsigned int screen,
-                     unsigned int flags ATTRIBUTE_UNUSED)
+                     unsigned int flags)
 {
     VBOX_OBJECT_CHECK(dom->conn, char *, NULL);
     IConsole *console = NULL;
@@ -8606,6 +8630,8 @@ vboxDomainScreenshot(virDomainPtr dom,
     int tmp_fd = -1;
     unsigned int max_screen;
 
+    virCheckFlags(0, NULL);
+
     vboxIIDFromUUID(&iid, dom->uuid);
     rc = VBOX_OBJECT_GET_MACHINE(iid.value, &machine);
     if (NS_FAILED(rc)) {