From: Paweł Marczewski Date: Fri, 13 Mar 2020 11:25:10 +0000 (+0000) Subject: libxl: fix cleanup bug in initiate_domain_create() X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~544 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d094e95fb7c61c5f46d8e446b4bdc028438dea1c;p=xen.git libxl: fix cleanup bug in initiate_domain_create() In case of errors, we immediately call domcreate_complete() which cleans up the console_xswait object. Make sure it is initialized before we start cleanup. Signed-off-by: Paweł Marczewski Reviewed-by: Ian Jackson --- diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 7891fae426..772344c648 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -1168,6 +1168,8 @@ static void initiate_domain_create(libxl__egc *egc, libxl_domain_config *const d_config = dcs->guest_config; const int restore_fd = dcs->restore_fd; + libxl__xswait_init(&dcs->console_xswait); + domid = dcs->domid; libxl__domain_build_state_init(&dcs->build_state); @@ -1219,8 +1221,6 @@ static void initiate_domain_create(libxl__egc *egc, if (ret) goto error_out; - libxl__xswait_init(&dcs->console_xswait); - if (restore_fd >= 0 || dcs->soft_reset) { LOGD(DEBUG, domid, "restoring, not running bootloader"); domcreate_bootloader_done(egc, &dcs->bl, 0);