From: John Ferlan Date: Mon, 10 Apr 2017 17:45:27 +0000 (-0400) Subject: nodedev: Fix aclfilter check X-Git-Tag: v3.3.0-rc1~219 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=551503d79dd29e8c20dd2fa87272639f2a7032c4;p=thirdparty%2Flibvirt.git nodedev: Fix aclfilter check For both virNodeDeviceObjNumOfDevices and virNodeDeviceObjGetNames, the check should be if the aclfilter doesn't exist or if it does exist, then it must pass --- diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c index 75ba1a02da..4f47b4e41b 100644 --- a/src/conf/virnodedeviceobj.c +++ b/src/conf/virnodedeviceobj.c @@ -486,7 +486,7 @@ virNodeDeviceObjNumOfDevices(virNodeDeviceObjListPtr devs, for (i = 0; i < devs->count; i++) { virNodeDeviceObjPtr obj = devs->objs[i]; virNodeDeviceObjLock(obj); - if (aclfilter && aclfilter(conn, obj->def) && + if ((!aclfilter || aclfilter(conn, obj->def)) && (!cap || virNodeDeviceObjHasCap(obj, cap))) ++ndevs; virNodeDeviceObjUnlock(obj); @@ -510,7 +510,7 @@ virNodeDeviceObjGetNames(virNodeDeviceObjListPtr devs, for (i = 0; i < devs->count && nnames < maxnames; i++) { virNodeDeviceObjPtr obj = devs->objs[i]; virNodeDeviceObjLock(obj); - if (aclfilter && aclfilter(conn, obj->def) && + if ((!aclfilter || aclfilter(conn, obj->def)) && (!cap || virNodeDeviceObjHasCap(obj, cap))) { if (VIR_STRDUP(names[nnames], obj->def->name) < 0) { virNodeDeviceObjUnlock(obj);