From 31eade077e21067d3cda9930391508eef38b91fe Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Tue, 6 Nov 2007 09:41:18 +0000 Subject: [PATCH] * src/virsh.c: patch from Masayuki Sunou to fix parameter validation of virsh schedinfo parameters. Daniel --- ChangeLog | 5 +++++ src/virsh.c | 24 +++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d74a78da6..f79981c1e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Nov 6 10:40:13 CET 2007 Daniel Veillard + + * src/virsh.c: patch from Masayuki Sunou to fix parameter + validation of virsh schedinfo parameters. + Mon Nov 5 11:11:45 CET 2007 Daniel Veillard * src/xml.c: patch from Beth Kon to fix a problem when the diff --git a/src/virsh.c b/src/virsh.c index 5af821ce47..0615a7d446 100644 --- a/src/virsh.c +++ b/src/virsh.c @@ -1149,11 +1149,25 @@ cmdSchedinfo(vshControl * ctl, vshCmd * cmd) return FALSE; /* Currently supports Xen Credit only */ - weight = vshCommandOptInt(cmd, "weight", &weightfound); - if (weightfound) nr_inputparams++; - - cap = vshCommandOptInt(cmd, "cap", &capfound); - if (capfound) nr_inputparams++; + if(vshCommandOptBool(cmd, "weight")) { + weight = vshCommandOptInt(cmd, "weight", &weightfound); + if (!weightfound) { + vshError(ctl, FALSE, _("Invalid value of weight")); + goto cleanup; + } else { + nr_inputparams++; + } + } + + if(vshCommandOptBool(cmd, "cap")) { + cap = vshCommandOptInt(cmd, "cap", &capfound); + if (!capfound) { + vshError(ctl, FALSE, _("Invalid value of cap")); + goto cleanup; + } else { + nr_inputparams++; + } + } params = vshMalloc(ctl, sizeof (virSchedParameter) * nr_inputparams); if (params == NULL) { -- 2.39.5