From: Dario Faggioli Date: Wed, 4 Nov 2015 12:03:31 +0000 (+0100) Subject: xl: avoid (another) uninitialised use of rc in vcpuset() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~2303 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=08b986f88b4c4c5d19a50b9883fff2dff582c7df;p=xen.git xl: avoid (another) uninitialised use of rc in vcpuset() Rearange the case when we check the new number of vCPUs against the number of host pCPUs not to use rc for internal error reporting. In fact: - rc was at risk of being used uninitialised; - rc should only be used for holding libxl error codes. Signed-off-by: Dario Faggioli Acked-by: Ian Campbell --- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 9b6b42ca2f..78048a1c72 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -5457,21 +5457,21 @@ static int vcpuset(uint32_t domid, const char* nr_vcpus, int check_host) * by the host's amount of pCPUs. */ if (check_host) { - unsigned int host_cpu = libxl_get_max_cpus(ctx); + unsigned int online_vcpus, host_cpu = libxl_get_max_cpus(ctx); libxl_dominfo dominfo; if (libxl_domain_info(ctx, &dominfo, domid)) return 1; - if (max_vcpus > dominfo.vcpu_online && max_vcpus > host_cpu) { + online_vcpus = dominfo.vcpu_online; + libxl_dominfo_dispose(&dominfo); + + if (max_vcpus > online_vcpus && max_vcpus > host_cpu) { fprintf(stderr, "You are overcommmitting! You have %d physical" \ " CPUs and want %d vCPUs! Aborting, use --ignore-host to" \ " continue\n", host_cpu, max_vcpus); - rc = 1; - } - libxl_dominfo_dispose(&dominfo); - if (rc) return 1; + } } rc = libxl_cpu_bitmap_alloc(ctx, &cpumap, max_vcpus); if (rc) {