]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
nwfilter: Avoid possible double free in virNWFilterInstReset()
authorAlexander Kuznetsov <kuznetsovam@altlinux.org>
Mon, 14 Apr 2025 13:51:34 +0000 (16:51 +0300)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 15 Apr 2025 10:57:07 +0000 (12:57 +0200)
virNWFilterInstReset() may be called multiple times, leading to a double g_free()
Replace plain g_free() with g_clear_pointer() to prevent this

Found by Linux Verification Center (linuxtesting.org) with Svace.

Reported-by: Dmitry Fedin <d.fedin@fobos-nt.ru>
Signed-off-by: Alexander Kuznetsov <kuznetsovam@altlinux.org>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/nwfilter/nwfilter_gentech_driver.c

index 41f270bb7cfb7dafb643d6a5f2f9c2af4e94e75e..0c12b54b802986a80472e9b2a28159b7da72a70b 100644 (file)
@@ -203,12 +203,12 @@ virNWFilterInstReset(virNWFilterInst *inst)
 
     for (i = 0; i < inst->nfilters; i++)
         virNWFilterObjUnlock(inst->filters[i]);
-    g_free(inst->filters);
+    g_clear_pointer(inst->filters, g_free);
     inst->nfilters = 0;
 
     for (i = 0; i < inst->nrules; i++)
         virNWFilterRuleInstFree(inst->rules[i]);
-    g_free(inst->rules);
+    g_clear_pointer(inst->rules, g_free);
     inst->nrules = 0;
 }