]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virHostCPUGetInfoPopulateLinux: Use automatic memory freeing
authorPeter Krempa <pkrempa@redhat.com>
Mon, 7 Apr 2025 11:49:21 +0000 (13:49 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 9 Apr 2025 16:03:29 +0000 (18:03 +0200)
Use 'g_autfree' for the two temporary strings.

'sysfs_cpudir' was used in two places, one of which is in a loop. Add
another helper variable for it and declare the other one in the loop.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/util/virhostcpu.c

index 3b4a11effb7ba1ed090be325ecaf24f7736875cf..d86a12a39071e2e09da3bcb74f893135ef32b6ac 100644 (file)
@@ -644,8 +644,8 @@ virHostCPUGetInfoPopulateLinux(FILE *cpuinfo,
     int threads_per_subcore = 0;
     unsigned int node;
     int ret = -1;
-    char *sysfs_nodedir = NULL;
-    char *sysfs_cpudir = NULL;
+    g_autofree char *sysfs_nodedir = NULL;
+    g_autofree char *sysfs_cpudir_fallback = NULL;
     int direrr;
 
     *mhz = 0;
@@ -707,6 +707,8 @@ virHostCPUGetInfoPopulateLinux(FILE *cpuinfo,
         threads_per_subcore = 0;
 
     while ((direrr = virDirRead(nodedir, &nodedirent, sysfs_nodedir)) > 0) {
+        g_autofree char *sysfs_cpudir = NULL;
+
         if (sscanf(nodedirent->d_name, "node%u", &node) != 1)
             continue;
 
@@ -723,8 +725,6 @@ virHostCPUGetInfoPopulateLinux(FILE *cpuinfo,
                                             &nodethreads, &offline)) < 0)
             goto cleanup;
 
-        VIR_FREE(sysfs_cpudir);
-
         *cpus += nodecpus;
 
         if (nodesockets > *sockets)
@@ -744,11 +744,9 @@ virHostCPUGetInfoPopulateLinux(FILE *cpuinfo,
         goto done;
 
  fallback:
-    VIR_FREE(sysfs_cpudir);
-
-    sysfs_cpudir = g_strdup_printf("%s/cpu", SYSFS_SYSTEM_PATH);
+    sysfs_cpudir_fallback = g_strdup_printf("%s/cpu", SYSFS_SYSTEM_PATH);
 
-    if ((nodecpus = virHostCPUParseNode(sysfs_cpudir, arch,
+    if ((nodecpus = virHostCPUParseNode(sysfs_cpudir_fallback, arch,
                                         present_cpus_map,
                                         online_cpus_map,
                                         threads_per_subcore,
@@ -799,8 +797,6 @@ virHostCPUGetInfoPopulateLinux(FILE *cpuinfo,
     ret = 0;
 
  cleanup:
-    VIR_FREE(sysfs_nodedir);
-    VIR_FREE(sysfs_cpudir);
     return ret;
 }