diff options
author | Alexander Ivanov <alexander.ivanov@virtuozzo.com> | 2024-08-09 14:13:40 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2024-08-13 16:35:47 +0200 |
commit | 940d802b24e63650e0eacad3714e2ce171cba17c (patch) | |
tree | b90fb3f365134c0bd9f3c8e23f0f22ed30fb056c /util | |
parent | 7700d2293c085c0481b71cc0f8c04ca20e7bd7d3 (diff) |
module: Prevent crash by resetting local_err in module_load_qom_all()
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>
Diffstat (limited to 'util')
-rw-r--r-- | util/module.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/util/module.c b/util/module.c index 32e263163c..3eb0f06df1 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; } |