On Thu, Jul 30, 2015 at 09:29:15 +0200, Andrea Bolognani wrote: > On Thu, 2015-07-30 at 10:57 +0800, Luyao Huang wrote: > > https://bugzilla.redhat.com/show_bug.cgi?id=1248277 > > > > When count <= 0, the client exit without set an error. > > > > Signed-off-by: Luyao Huang <lhuang@xxxxxxxxxx> > > --- > > tools/virsh-domain.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c > > index f7edeeb..b6da684 100644 > > --- a/tools/virsh-domain.c > > +++ b/tools/virsh-domain.c > > @@ -6744,8 +6744,12 @@ cmdSetvcpus(vshControl *ctl, const vshCmd > > *cmd) > > if (!(dom = vshCommandOptDomain(ctl, cmd, NULL))) > > return false; > > > > - if (vshCommandOptInt(ctl, cmd, "count", &count) < 0 || count <= > > 0) > > + if (vshCommandOptInt(ctl, cmd, "count", &count) < 0) > > goto cleanup; > > + if (count <= 0) { > > + vshError(ctl, _("Invalid value '%d' for number of virtual > > CPUs"), count); > > + goto cleanup; > > + } > > > > /* none of the options were specified */ > > if (!current && flags == 0) { > > Nice catch, but I would go for the following diff instead: > > -----8<----- > diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c > index a61656f..4b8ebbd 100644 > --- a/tools/virsh-domain.c > +++ b/tools/virsh-domain.c > @@ -6819,7 +6819,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"); > @@ -6846,8 +6846,15 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd) > if (!(dom = vshCommandOptDomain(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, > + _("Numeric value '%s' for <%s> option is malformed or > out of range"), Since we know that here we are trying to set 0 cpus which is wrong we can also say that explicitly in the error message rather than copying the generic one. Peter
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list