On 07/26/2012 07:35 AM, Ján Tomko wrote:
---
tools/virsh.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/tools/virsh.c b/tools/virsh.c
index 5658796..34ae171 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -3097,6 +3097,10 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
vshError(ctl, "%s", _("option -d takes a numeric
argument"));
exit(EXIT_FAILURE);
}
+ if (ctl->debug < VSH_ERR_DEBUG || ctl->debug > VSH_ERR_ERROR) {
+ vshError(ctl, _("ignoring debug level %d out of range
[0-4]"),
+ ctl->debug);
+ }
That warns, but still uses the fishy ctl->debug value for the rest of
the life of the program. Would it be better to first parse the option
into a temporary variable, then range check, and only after the range
check then assign it to ctl->debug?
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org