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>
This commit is contained in:
parent
7700d2293c
commit
940d802b24
@ -354,13 +354,13 @@ int module_load_qom(const char *type, Error **errp)
|
|||||||
void module_load_qom_all(void)
|
void module_load_qom_all(void)
|
||||||
{
|
{
|
||||||
const QemuModinfo *modinfo;
|
const QemuModinfo *modinfo;
|
||||||
Error *local_err = NULL;
|
|
||||||
|
|
||||||
if (module_loaded_qom_all) {
|
if (module_loaded_qom_all) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (modinfo = module_info; modinfo->name != NULL; modinfo++) {
|
for (modinfo = module_info; modinfo->name != NULL; modinfo++) {
|
||||||
|
Error *local_err = NULL;
|
||||||
if (!modinfo->objs) {
|
if (!modinfo->objs) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user