xl: Fix assertion on domain reboot with new configuration
authorFatih Acar <fatih.acar@gandi.net>
Mon, 30 Jan 2017 14:33:18 +0000 (15:33 +0100)
committerWei Liu <wei.liu2@citrix.com>
Thu, 2 Feb 2017 12:33:08 +0000 (12:33 +0000)
libxl_domain_build_info_dispose is not resetting the type field to LIBXL_DOMAIN_TYPE_INVALID.
Instead, it is memseting the struct to 0 thus when libxl_domain_build_info_init_type is called
after a dispose on the same struct, an assertion is triggered because type != LIBXL_DOMAIN_TYPE_INVALID.
Calling libxl_domain_build_info_init makes sure the type field is correctly initialized.

Signed-off-by: Fatih Acar <fatih.acar@gandi.net>
Signed-off-by: Nikita Kozlov <nikita.kozlov@gandi.net>
Signed-off-by: Vincent Legout <vincent.legout@gandi.net>
Signed-off-by: Baptiste Daroussin <baptiste.daroussin@gandi.net>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libxl/xl_cmdimpl.c

index 7e8a8ae5c4a3a44b3edfb5659b1cd5c3908f9fa3..196b8a685130a9869df37329af308108ace04c0f 100644 (file)
@@ -2535,6 +2535,7 @@ static void reload_domain_config(uint32_t domid,
     if (t_len > 0) {
         LOG("\"xl\" configuration found, using it\n");
         libxl_domain_config_dispose(d_config);
+        libxl_domain_config_init(d_config);
         parse_config_data("<updated>", (const char *)t_data,
                           t_len, d_config);
         free(t_data);