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; }