
On 04/30/2014 01:01 AM, Peter Krempa wrote:
On 04/30/14 06:22, Eric Blake wrote:
Commit f22b7899 stumbled across a difference between 32-bit and 64-bit platforms; on 64-bit, parsing "-1" as a long produces 0xffffffffffffffff, which does not fit in unsigned int; but on 32-bit, it parses as 0xffffffff, which DOES fit. Another patch will tweak virStrToLong_ui to behave the same across platforms, but regardless of which of the two choices it makes, the chain lookup code wants to reject negative numbers rather than treating it as large integers.
I'd rather see a wrapper that rejects negative numbers when parsing into a unsigned type rather than having it silently convert the number to a negative one.
I know that there are places where this is desired, but they should be fixed to explicitly use a differnent func.
+ virStrToLong_ui(strings[1], &suffix, 10, &idx) < 0 || STRNEQ(suffix, "]")) goto cleanup;
I'm inclined to NACK this change.
Fair enough, v2 posted. https://www.redhat.com/archives/libvir-list/2014-May/msg00000.html -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org