On Wed, Jul 06, 2011 at 05:23:50PM -0600, Eric Blake wrote:
* src/node_device/node_device_driver.c (nodeNumOfDevices)
(nodeListDevices, nodeDeviceGetXMLDesc, nodeDeviceCreateXML):
Reject unknown flags.
* src/node_device/node_device_hal.c (halNodeDrvOpen): Likewise.
* src/node_device/node_device_udev.c (udevNodeDrvOpen): Likewise.
---
src/node_device/node_device_driver.c | 18 +++++++++++++-----
src/node_device/node_device_hal.c | 4 +++-
src/node_device/node_device_udev.c | 4 +++-
3 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index 842f903..681655e 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -1,7 +1,7 @@
/*
* node_device.c: node device enumeration
*
- * Copyright (C) 2010 Red Hat, Inc.
+ * Copyright (C) 2010-2011 Red Hat, Inc.
* Copyright (C) 2008 Virtual Iron Software, Inc.
* Copyright (C) 2008 David F. Lively
*
@@ -125,12 +125,14 @@ void nodeDeviceUnlock(virDeviceMonitorStatePtr driver)
int
nodeNumOfDevices(virConnectPtr conn,
const char *cap,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
virDeviceMonitorStatePtr driver = conn->devMonPrivateData;
int ndevs = 0;
unsigned int i;
+ virCheckFlags(0, -1);
+
nodeDeviceLock(driver);
for (i = 0; i < driver->devs.count; i++) {
virNodeDeviceObjLock(driver->devs.objs[i]);
@@ -148,12 +150,14 @@ int
nodeListDevices(virConnectPtr conn,
const char *cap,
char **const names, int maxnames,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
virDeviceMonitorStatePtr driver = conn->devMonPrivateData;
int ndevs = 0;
unsigned int i;
+ virCheckFlags(0, -1);
+
nodeDeviceLock(driver);
for (i = 0; i < driver->devs.count && ndevs < maxnames; i++) {
virNodeDeviceObjLock(driver->devs.objs[i]);
@@ -254,12 +258,14 @@ out:
char *
nodeDeviceGetXMLDesc(virNodeDevicePtr dev,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
virDeviceMonitorStatePtr driver = dev->conn->devMonPrivateData;
virNodeDeviceObjPtr obj;
char *ret = NULL;
+ virCheckFlags(0, NULL);
+
nodeDeviceLock(driver);
obj = virNodeDeviceFindByName(&driver->devs, dev->name);
nodeDeviceUnlock(driver);
@@ -545,7 +551,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char
*wwpn)
virNodeDevicePtr
nodeDeviceCreateXML(virConnectPtr conn,
const char *xmlDesc,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
virDeviceMonitorStatePtr driver = conn->devMonPrivateData;
virNodeDeviceDefPtr def = NULL;
@@ -553,6 +559,8 @@ nodeDeviceCreateXML(virConnectPtr conn,
int parent_host = -1;
virNodeDevicePtr dev = NULL;
+ virCheckFlags(0, NULL);
+
nodeDeviceLock(driver);
def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE);
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index d1dedfe..40962ba 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -862,8 +862,10 @@ static int halDeviceMonitorActive(void)
static virDrvOpenStatus halNodeDrvOpen(virConnectPtr conn,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR);
+
if (driverState == NULL)
return VIR_DRV_OPEN_DECLINED;
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index db26c6b..dfc5457 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1721,8 +1721,10 @@ static int udevDeviceMonitorActive(void)
static virDrvOpenStatus udevNodeDrvOpen(virConnectPtr conn,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
- unsigned int flags ATTRIBUTE_UNUSED)
+ unsigned int flags)
{
+ virCheckFlags(0, VIR_DRV_OPEN_ERROR);
+
if (driverState == NULL) {
return VIR_DRV_OPEN_DECLINED;
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/