From: Andrew Cooper Date: Tue, 28 Aug 2012 13:46:30 +0000 (+0100) Subject: tools/xl: Fix uninitialized variable error. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~8019 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=efbb5c54110baf958e2ae5681e08eb25aa26c62d;p=xen.git tools/xl: Fix uninitialized variable error. c/s 25779:4ca40e0559c3 introduced a compilation error for any build system using -Werror=uninitialized, such as the default CentOS 5.7 version of gcc. And with good reason, because if the global libxl default_output_format is neither OUTPUT_FORMAT_SXP nor OUTPUT_FORMAT_JSON, the variable hand will be used before being initialised. The attached patch fixes the warning, and futher fixes the logic to work correctly when a new OUTPUT_FORMAT is added to xl. Signed-off-by: Andrew Cooper Acked-by: Ian Campbell Committed-by: Ian Campbell --- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index e825897b43..dfdb5ffc82 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -2686,7 +2686,7 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain) uint8_t *data; int i, len, rc; - yajl_gen hand; + yajl_gen hand = NULL; yajl_gen_status s; const char *buf; libxl_yajl_length yajl_len = 0; @@ -2714,10 +2714,10 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain) CHK_ERRNO(asprintf(&config_source, "", info[i].domid)); libxl_domain_config_init(&d_config); parse_config_data(config_source, (char *)data, len, &d_config, NULL); - if (default_output_format == OUTPUT_FORMAT_SXP) - printf_info_sexp(domid, &d_config); - else + if (default_output_format == OUTPUT_FORMAT_JSON) s = printf_info_one_json(hand, info[i].domid, &d_config); + else + printf_info_sexp(domid, &d_config); libxl_domain_config_dispose(&d_config); free(data); free(config_source);