From: Guannan Ren Date: Tue, 5 Mar 2013 15:13:21 +0000 (+0800) Subject: util: fix a integer boundary error X-Git-Tag: v1.0.4-rc1~158 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b38a040a2996ea5e0ff4ef41e69114e3681592ba;p=thirdparty%2Flibvirt.git util: fix a integer boundary error A value which is equal to a integer maximum such as LLONG_MAX is a valid integer value. The patch fix the following error: 1, virsh memtune vm --swap-hard-limit -1 2, virsh start vm In debug mode, it shows error like: virScaleInteger:1813 : numerical overflow:\ value too large: 9007199254740991KiB --- diff --git a/src/util/virutil.c b/src/util/virutil.c index 4af2599c55..4605c78ca7 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -1809,7 +1809,7 @@ virScaleInteger(unsigned long long *value, const char *suffix, } } - if (*value && *value >= (limit / scale)) { + if (*value && *value > (limit / scale)) { virReportError(VIR_ERR_OVERFLOW, _("value too large: %llu%s"), *value, suffix); return -1;