From 0ee4415cc6cde77ec430a15621aae341d1cb7870 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Thu, 16 Aug 2007 13:21:36 +0000 Subject: [PATCH] * src/virsh.c: vshCommandOptInt was broken as it would not detect non-int inputs, problem raised by Masayuki Sunou Daniel --- ChangeLog | 5 +++++ src/virsh.c | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 618dab68ad..95660481bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 16 15:24:30 CEST 2007 Daniel Veillard + + * src/virsh.c: vshCommandOptInt was broken as it would not + detect non-int inputs, problem raised by Masayuki Sunou + Wed Aug 15 12:21:13 CEST 2007 Daniel Veillard * src/virsh.c: fixed 2 small bugs in setvcpus command, after diff --git a/src/virsh.c b/src/virsh.c index 5ad356572c..69dc559dfd 100644 --- a/src/virsh.c +++ b/src/virsh.c @@ -3699,12 +3699,18 @@ static int vshCommandOptInt(vshCmd * cmd, const char *name, int *found) { vshCmdOpt *arg = vshCommandOpt(cmd, name); - int res = 0; + int res = 0, num_found = FALSE; + char *end_p = NULL; - if (arg) - res = atoi(arg->data); + if ((arg != NULL) && (arg->data != NULL)) { + res = strtol(arg->data, &end_p, 10); + if ((arg->data == end_p) || (*end_p!= 0)) + num_found = FALSE; + else + num_found = TRUE; + } if (found) - *found = arg ? TRUE : FALSE; + *found = num_found; return res; } -- GitLab