On 07/01/2011 10:54 AM, Eric Blake wrote:
+++ w/src/util/util.c
@@ -1619,6 +1619,9 @@ virParseVersionString(const char *str, unsigned
long *version,
if ((*tmp == '.') && virStrToLong_ui(tmp + 1, &tmp, 10,
µ) < 0)
return -1;
+ if (major > ULONG_MAX / 1000000 || minor > 999 || micro > 999)
s/ULONG_MAX/UINT_MAX/
to silence a compiler warning, and to deal with the fact that even
though this function populates an 'unsigned long *version', the only
reason it does so is because of our (poor) choice in making
virGetVersion use unsigned long. But for portability to 32-bit hosts,
we can never exceed a 32-bit version computation, even on hosts where
long is 64-bits.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org