diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2014-06-18 17:50:07 +0300 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2014-06-19 18:44:22 +0300 |
commit | c210ee95f22e90733eceeb18b9ca1914ff29e482 (patch) | |
tree | bf24eed4b37181b24bb8233544d8dde66087b418 /qapi/string-input-visitor.c | |
parent | b4acfbcd95ac9a668e2f49dd9e1449ea81263752 (diff) |
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>
Diffstat (limited to 'qapi/string-input-visitor.c')
-rw-r--r-- | qapi/string-input-visitor.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c index 72722e6571..d8a8db02ed 100644 --- a/qapi/string-input-visitor.c +++ b/qapi/string-input-visitor.c @@ -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') { |