[PATCH 04/12] util: reduce scope of a DIR * in virCgroupV1SetOwner()

Laine Stump laine at redhat.com
Wed Oct 28 01:35:50 UTC 2020


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 at 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




More information about the libvir-list mailing list