libxl: fix crash when initializing driver

Commit 54a401af47 split out DriverConfigInit from DriverConfigNew, but
then called it a bit late from libxlStateInitialize. The cfg is used in
libxlDriverConfigLoadFile and when uninitialized results in a crash.
Calling DriverConfigInit immediately after DriverConfigNew fixes the
crash.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Jim Fehlig 2020-04-03 15:51:48 -06:00
parent 0895a0e75d
commit 88011ed280

View File

@ -702,14 +702,14 @@ libxlStateInitialize(bool privileged,
if (!(cfg = libxlDriverConfigNew())) if (!(cfg = libxlDriverConfigNew()))
goto error; goto error;
if (libxlDriverConfigInit(cfg) < 0)
goto error;
driverConf = g_strdup_printf("%s/libxl.conf", cfg->configBaseDir); driverConf = g_strdup_printf("%s/libxl.conf", cfg->configBaseDir);
if (libxlDriverConfigLoadFile(cfg, driverConf) < 0) if (libxlDriverConfigLoadFile(cfg, driverConf) < 0)
goto error; goto error;
if (libxlDriverConfigInit(cfg) < 0)
goto error;
/* Register the callbacks providing access to libvirt's event loop */ /* Register the callbacks providing access to libvirt's event loop */
libxl_osevent_register_hooks(cfg->ctx, &libxl_osevent_callbacks, cfg->ctx); libxl_osevent_register_hooks(cfg->ctx, &libxl_osevent_callbacks, cfg->ctx);