diff mbox series

[PULL,5/6] module: Prevent crash by resetting local_err in module_load_qom_all()

Message ID 20240813170556.104193-6-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show
Series [PULL,1/6] target/hexagon: don't look for static glib | expand

Commit Message

Paolo Bonzini Aug. 13, 2024, 5:05 p.m. UTC
From: Alexander Ivanov <alexander.ivanov@virtuozzo.com>

Set local_err to NULL after it has been freed in error_report_err(). This
avoids triggering assert(*errp == NULL) failure in error_setv() when
local_err is reused in the loop.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Link: https://lore.kernel.org/r/20240809121340.992049-2-alexander.ivanov@virtuozzo.com
[Do the same by moving the declaration instead. - Paolo]
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 util/module.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/util/module.c b/util/module.c
index 32e263163c7..3eb0f06df16 100644
--- a/util/module.c
+++ b/util/module.c
@@ -354,13 +354,13 @@  int module_load_qom(const char *type, Error **errp)
 void module_load_qom_all(void)
 {
     const QemuModinfo *modinfo;
-    Error *local_err = NULL;
 
     if (module_loaded_qom_all) {
         return;
     }
 
     for (modinfo = module_info; modinfo->name != NULL; modinfo++) {
+        Error *local_err = NULL;
         if (!modinfo->objs) {
             continue;
         }