]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virHostValidateBhyve: Heap allocate massive 'struct kld_file_stat'
authorPeter Krempa <pkrempa@redhat.com>
Tue, 20 Sep 2022 10:08:50 +0000 (12:08 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 4 Sep 2023 08:31:53 +0000 (10:31 +0200)
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Kristina Hanicova <khanicov@redhat.com>
tools/virt-host-validate-bhyve.c

index 9457fac9a5bf8d74478872f90d4b507f2e45f830..db1cdd8e2c3d9b18689c5e9a1afedc24ea0b733a 100644 (file)
@@ -49,24 +49,24 @@ int virHostValidateBhyve(void)
 {
     int ret = 0;
     int fileid = 0;
-    struct kld_file_stat stat;
+    g_autofree struct kld_file_stat *stat = g_new0(struct kld_file_stat, 1);
     bool vmm_loaded = false;
     bool if_tap_loaded = false;
     bool if_bridge_loaded = false;
     bool nmdm_loaded = false;
 
     for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) {
-        stat.version = sizeof(struct kld_file_stat);
-        if (kldstat(fileid, &stat) < 0)
+        stat->version = sizeof(struct kld_file_stat);
+        if (kldstat(fileid, stat) < 0)
             continue;
 
-        if (STREQ(stat.name, "vmm.ko"))
+        if (STREQ(stat->name, "vmm.ko"))
             vmm_loaded = true;
-        else if (STREQ(stat.name, "if_tap.ko"))
+        else if (STREQ(stat->name, "if_tap.ko"))
             if_tap_loaded = true;
-        else if (STREQ(stat.name, "if_bridge.ko"))
+        else if (STREQ(stat->name, "if_bridge.ko"))
             if_bridge_loaded = true;
-        else if (STREQ(stat.name, "nmdm.ko"))
+        else if (STREQ(stat->name, "nmdm.ko"))
             nmdm_loaded = true;
     }