qapi: fix input visitor bugs

Remove dead code.  Reset errno to 0 before each strtoull call, as the
man page requires.

Reported-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Michael S. Tsirkin 2014-06-18 17:50:07 +03:00
parent b4acfbcd95
commit c210ee95f2
1 changed files with 4 additions and 5 deletions

View File

@ -48,11 +48,10 @@ static void parse_str(StringInputVisitor *siv, Error **errp)
return;
}
errno = 0;
do {
errno = 0;
start = strtoll(str, &endptr, 0);
if (errno == 0 && endptr > str && INT64_MIN <= start &&
start <= INT64_MAX) {
if (errno == 0 && endptr > str) {
if (*endptr == '\0') {
cur = g_malloc0(sizeof(*cur));
cur->begin = start;
@ -63,9 +62,9 @@ static void parse_str(StringInputVisitor *siv, Error **errp)
str = NULL;
} else if (*endptr == '-') {
str = endptr + 1;
errno = 0;
end = strtoll(str, &endptr, 0);
if (errno == 0 && endptr > str &&
INT64_MIN <= end && end <= INT64_MAX && start <= end &&
if (errno == 0 && endptr > str && start <= end &&
(start > INT64_MAX - 65536 ||
end < start + 65536)) {
if (*endptr == '\0') {