From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH] xl: avoid (another) uninitialised use of rc in vcpuset() Date: Wed, 04 Nov 2015 13:03:31 +0100 Message-ID: <20151104120331.29313.40737.stgit@Solace.station> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Ztwmz-0006aG-AU for xen-devel@lists.xenproject.org; Wed, 04 Nov 2015 12:03:41 +0000 Received: by wmec75 with SMTP id c75so111201706wme.1 for ; Wed, 04 Nov 2015 04:03:34 -0800 (PST) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Ian Campbell , Wei Liu , Ian Jackson , Harmandeep Kaur List-Id: xen-devel@lists.xenproject.org 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 --- Cc: Ian Campbell Cc: Ian Jackson Cc: Wei Liu Cc: Harmandeep Kaur Cc: Andrew Cooper --- tools/libxl/xl_cmdimpl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 9b6b42c..78048a1 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) {