DIR *dh is being re-used each time through the for loop of this
function, so it must be closed and then re-opened, which means we
can't convert it to g_autoptr. By moving the definition of dh inside
the for loop, we make it possible to trivially convert to g_autoptr
(which will happen in a subsequent patch)
NB: VIR_DIR_CLOSE() is already called at the bottom of the for loop,
so removing the VIR_DIR_CLOSE() at the end of the function is *not*
creating a leak of a DIR*!
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
src/util/vircgroupv1.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c
index 91c1c4d4b1..67b35c1b9a 100644
--- a/src/util/vircgroupv1.c
+++ b/src/util/vircgroupv1.c
@@ -875,12 +875,12 @@ virCgroupV1SetOwner(virCgroupPtr cgroup,
{
int ret = -1;
size_t i;
- DIR *dh = NULL;
int direrr;
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
g_autofree char *base = NULL;
struct dirent *de;
+ DIR *dh = NULL;
if (!((1 << i) & controllers))
continue;
@@ -922,7 +922,6 @@ virCgroupV1SetOwner(virCgroupPtr cgroup,
ret = 0;
cleanup:
- VIR_DIR_CLOSE(dh);
return ret;
}
--
2.26.2