]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: reject unknown flags, and prefer unsigned flags
authorEric Blake <eblake@redhat.com>
Wed, 6 Jul 2011 22:29:02 +0000 (16:29 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 13 Jul 2011 15:04:54 +0000 (09:04 -0600)
Silently ignored flags get in the way of new features that
use those flags.  Also, an upcoming syntax check will favor
unsigned flags.

* src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Drop
unused attribute.
* src/interface/netcf_driver.c (interfaceOpenInterface)
(interfaceDefineXML, interfaceCreate, interfaceDestroy): Reject
unknown flags.
* src/network/bridge_driver.c (networkOpenNetwork)
(networkGetXMLDesc): Likewise.
* src/nwfilter/nwfilter_driver.c (nwfilterOpen): Likewise.
* src/secret/secret_driver.c (secretOpen, secretDefineXML)
(secretGetXMLDesc, secretSetValue): Likewise.
* src/util/logging.c (virLogDefineFilter, virLogDefineOutput)
(virLogMessage): Likewise; also use unsigned flags.
* src/util/logging.h (virLogDefineFilter, virLogDefineOutput)
(virLogMessage): Change signature.
* src/util/command.c (virExecWithHook): Likewise.

src/interface/netcf_driver.c
src/network/bridge_driver.c
src/nodeinfo.h
src/nwfilter/nwfilter_driver.c
src/secret/secret_driver.c
src/util/command.c
src/util/logging.c
src/util/logging.h

index 8900722db7296cda0951b4f16f236e431e3c9d5d..855b5a3ed740633f2f9132a688d5ea88bbebb8d5 100644 (file)
@@ -121,10 +121,12 @@ static struct netcf_if *interfaceDriverGetNetcfIF(struct netcf *ncf, virInterfac
 
 static virDrvOpenStatus interfaceOpenInterface(virConnectPtr conn,
                                                virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                               unsigned int flags ATTRIBUTE_UNUSED)
+                                               unsigned int flags)
 {
     struct interface_driver *driverState;
 
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (VIR_ALLOC(driverState) < 0)
     {
         virReportOOMError();
@@ -387,7 +389,7 @@ cleanup:
 
 static virInterfacePtr interfaceDefineXML(virConnectPtr conn,
                                           const char *xml,
-                                          unsigned int flags ATTRIBUTE_UNUSED)
+                                          unsigned int flags)
 {
     struct interface_driver *driver = conn->interfacePrivateData;
     struct netcf_if *iface = NULL;
@@ -395,6 +397,8 @@ static virInterfacePtr interfaceDefineXML(virConnectPtr conn,
     virInterfaceDefPtr ifacedef = NULL;
     virInterfacePtr ret = NULL;
 
+    virCheckFlags(0, NULL);
+
     interfaceDriverLock(driver);
 
     ifacedef = virInterfaceDefParseString(xml);
@@ -461,12 +465,14 @@ cleanup:
 }
 
 static int interfaceCreate(virInterfacePtr ifinfo,
-                           unsigned int flags ATTRIBUTE_UNUSED)
+                           unsigned int flags)
 {
     struct interface_driver *driver = ifinfo->conn->interfacePrivateData;
     struct netcf_if *iface = NULL;
     int ret = -1;
 
+    virCheckFlags(0, -1);
+
     interfaceDriverLock(driver);
 
     iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo);
@@ -493,12 +499,14 @@ cleanup:
 }
 
 static int interfaceDestroy(virInterfacePtr ifinfo,
-                            unsigned int flags ATTRIBUTE_UNUSED)
+                            unsigned int flags)
 {
     struct interface_driver *driver = ifinfo->conn->interfacePrivateData;
     struct netcf_if *iface = NULL;
     int ret = -1;
 
+    virCheckFlags(0, -1);
+
     interfaceDriverLock(driver);
 
     iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo);
index 554a8ac81cea49464260b48e985cea61c5a3d6cb..0a12bc08d4be1fbfe635f5a3fdb6f8d0644b61a9 100644 (file)
@@ -2010,7 +2010,10 @@ cleanup:
 
 static virDrvOpenStatus networkOpenNetwork(virConnectPtr conn,
                                            virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-                                           unsigned int flags ATTRIBUTE_UNUSED) {
+                                           unsigned int flags)
+{
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (!driverState)
         return VIR_DRV_OPEN_DECLINED;
 
@@ -2416,12 +2419,14 @@ cleanup:
 }
 
 static char *networkGetXMLDesc(virNetworkPtr net,
-                               unsigned int flags ATTRIBUTE_UNUSED)
+                               unsigned int flags)
 {
     struct network_driver *driver = net->conn->networkPrivateData;
     virNetworkObjPtr network;
     char *ret = NULL;
 
+    virCheckFlags(0, NULL);
+
     networkDriverLock(driver);
     network = virNetworkFindByUUID(&driver->networks, net->uuid);
     networkDriverUnlock(driver);
index 9b2658fd5a225a2fa9e97622d54fe3b293ddcd6e..e5ac1e01e39d062deb147779bce365610099cac9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * nodeinfo.c: Helper routines for OS specific node information
  *
- * Copyright (C) 2006-2008 Red Hat, Inc.
+ * Copyright (C) 2006-2008, 2011 Red Hat, Inc.
  * Copyright (C) 2006 Daniel P. Berrange
  *
  * This library is free software; you can redistribute it and/or
@@ -34,12 +34,12 @@ int nodeGetCPUStats(virConnectPtr conn ATTRIBUTE_UNUSED,
                     int cpuNum,
                     virNodeCPUStatsPtr params,
                     int *nparams,
-                    unsigned int flags ATTRIBUTE_UNUSED);
+                    unsigned int flags);
 int nodeGetMemoryStats(virConnectPtr conn ATTRIBUTE_UNUSED,
                        int cellNum,
                        virNodeMemoryStatsPtr params,
                        int *nparams,
-                       unsigned int flags ATTRIBUTE_UNUSED);
+                       unsigned int flags);
 int nodeGetCellsFreeMemory(virConnectPtr conn,
                            unsigned long long *freeMems,
                            int startCell,
index bfe7f2f9a2382ff1749cb18d36f642f6480e9400..a735059cea42737c103a7ed241c78d45a7ea55a5 100644 (file)
@@ -272,8 +272,10 @@ cleanup:
 static virDrvOpenStatus
 nwfilterOpen(virConnectPtr conn,
              virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-             unsigned int flags ATTRIBUTE_UNUSED)
+             unsigned int flags)
 {
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (!driverState)
         return VIR_DRV_OPEN_DECLINED;
 
index 552b7e4cf0cd37fbe79fbf3c8998d90025144eef..c45ba51147abe739033959398cd7b01abc5df203 100644 (file)
@@ -525,7 +525,10 @@ cleanup:
 
 static virDrvOpenStatus
 secretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED,
-           unsigned int flags ATTRIBUTE_UNUSED) {
+           unsigned int flags)
+{
+    virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
+
     if (driverState == NULL)
         return VIR_DRV_OPEN_DECLINED;
 
@@ -667,7 +670,7 @@ cleanup:
 
 static virSecretPtr
 secretDefineXML(virConnectPtr conn, const char *xml,
-                unsigned int flags ATTRIBUTE_UNUSED)
+                unsigned int flags)
 {
     virSecretDriverStatePtr driver = conn->secretPrivateData;
     virSecretPtr ret = NULL;
@@ -675,6 +678,8 @@ secretDefineXML(virConnectPtr conn, const char *xml,
     virSecretDefPtr backup = NULL;
     virSecretDefPtr new_attrs;
 
+    virCheckFlags(0, NULL);
+
     new_attrs = virSecretDefParseString(xml);
     if (new_attrs == NULL)
         return NULL;
@@ -778,12 +783,14 @@ cleanup:
 }
 
 static char *
-secretGetXMLDesc(virSecretPtr obj, unsigned int flags ATTRIBUTE_UNUSED)
+secretGetXMLDesc(virSecretPtr obj, unsigned int flags)
 {
     virSecretDriverStatePtr driver = obj->conn->secretPrivateData;
     char *ret = NULL;
     virSecretEntryPtr secret;
 
+    virCheckFlags(0, NULL);
+
     secretDriverLock(driver);
 
     secret = secretFindByUUID(driver, obj->uuid);
@@ -805,7 +812,7 @@ cleanup:
 
 static int
 secretSetValue(virSecretPtr obj, const unsigned char *value,
-               size_t value_size, unsigned int flags ATTRIBUTE_UNUSED)
+               size_t value_size, unsigned int flags)
 {
     virSecretDriverStatePtr driver = obj->conn->secretPrivateData;
     int ret = -1;
@@ -813,6 +820,8 @@ secretSetValue(virSecretPtr obj, const unsigned char *value,
     size_t old_value_size;
     virSecretEntryPtr secret;
 
+    virCheckFlags(0, -1);
+
     if (VIR_ALLOC_N(new_value, value_size) < 0) {
         virReportOOMError();
         return -1;
index eae58b25ae277cd849f11e59ff4a514473d552fa..6c19cd14ae48cf47e5e9a6514bc92f89b5bf4aa9 100644 (file)
@@ -285,14 +285,14 @@ getDevNull(int *null)
  */
 static int
 virExecWithHook(const char *const*argv,
-          const char *const*envp,
-          const fd_set *keepfd,
-          pid_t *retpid,
-          int infd, int *outfd, int *errfd,
-          int flags,
-          virExecHook hook,
-          void *data,
-          char *pidfile)
+                const char *const*envp,
+                const fd_set *keepfd,
+                pid_t *retpid,
+                int infd, int *outfd, int *errfd,
+                unsigned int flags,
+                virExecHook hook,
+                void *data,
+                char *pidfile)
 {
     pid_t pid;
     int null = -1, i, openmax;
index c86fcda09c9f487ffbe76c5eebcbdd415780a773..d340f573eba6441c1c3b09047fa24e8ff9aaf660 100644 (file)
@@ -481,10 +481,13 @@ static int virLogResetFilters(void) {
  * Returns -1 in case of failure or the filter number if successful
  */
 int virLogDefineFilter(const char *match, int priority,
-                       int flags ATTRIBUTE_UNUSED) {
+                       unsigned int flags)
+{
     int i;
     char *mdup = NULL;
 
+    virCheckFlags(0, -1);
+
     if ((match == NULL) || (priority < VIR_LOG_DEBUG) ||
         (priority > VIR_LOG_ERROR))
         return -1;
@@ -579,10 +582,13 @@ static int virLogResetOutputs(void) {
  */
 int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data,
                        int priority, int dest, const char *name,
-                       int flags ATTRIBUTE_UNUSED) {
+                       unsigned int flags)
+{
     int ret = -1;
     char *ndup = NULL;
 
+    virCheckFlags(0, -1);
+
     if (f == NULL)
         return -1;
 
@@ -683,7 +689,8 @@ virLogVersionString(char **msg,
  * the message may be stored, sent to output or just discarded
  */
 void virLogMessage(const char *category, int priority, const char *funcname,
-                   long long linenr, int flags, const char *fmt, ...) {
+                   long long linenr, unsigned int flags, const char *fmt, ...)
+{
     static bool logVersionStderr = true;
     char *str = NULL;
     char *msg = NULL;
index 6683e6fbd019ee9413e906858f3d9eb812f600e8..20c8948e69c2336e10a0f2b7de0af7472d06af5b 100644 (file)
@@ -105,10 +105,11 @@ extern char *virLogGetOutputs(void);
 extern int virLogGetDefaultPriority(void);
 extern int virLogSetDefaultPriority(int priority);
 extern void virLogSetFromEnv(void);
-extern int virLogDefineFilter(const char *match, int priority, int flags);
+extern int virLogDefineFilter(const char *match, int priority,
+                              unsigned int flags);
 extern int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data,
                               int priority, int dest, const char *name,
-                              int flags);
+                              unsigned int flags);
 
 /*
  * Internal logging API
@@ -123,7 +124,8 @@ extern int virLogParseDefaultPriority(const char *priority);
 extern int virLogParseFilters(const char *filters);
 extern int virLogParseOutputs(const char *output);
 extern void virLogMessage(const char *category, int priority,
-                          const char *funcname, long long linenr, int flags,
+                          const char *funcname, long long linenr,
+                          unsigned int flags,
                           const char *fmt, ...) ATTRIBUTE_FMT_PRINTF(6, 7);
 extern int virLogSetBufferSize(int size);
 extern void virLogEmergencyDumpAll(int signum);