From c62c59a9840cde925f4f88fddf639e434bcef33d Mon Sep 17 00:00:00 2001 From: Luyao Huang Date: Thu, 22 Oct 2015 11:27:35 +0800 Subject: [PATCH] virsh: Display an error when passing count <= 0 to setvcpus The number of vCPUs for a guest must be between 1 and the maximum value configured in the domain XML. This commit introduces checks to make sure that passing count <= 0 results in an error. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1248277 Signed-off-by: Luyao Huang --- tools/virsh-domain.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 41915481b..3f032f419 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -6873,7 +6873,7 @@ static bool cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) { virDomainPtr dom; - int count = 0; + unsigned int count = 0; bool ret = false; bool maximum = vshCommandOptBool(cmd, "maximum"); bool config = vshCommandOptBool(cmd, "config"); @@ -6900,9 +6900,14 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) if (!(dom = virshCommandOptDomain(ctl, cmd, NULL))) return false; - if (vshCommandOptInt(ctl, cmd, "count", &count) < 0 || count <= 0) + if (vshCommandOptUInt(ctl, cmd, "count", &count) < 0) goto cleanup; + if (count == 0) { + vshError(ctl, _("Can't set 0 processors for a VM")); + goto cleanup; + } + /* none of the options were specified */ if (!current && flags == 0) { if (virDomainSetVcpus(dom, count) != 0) -- 2.39.5