On 01/16/2013 08:24 AM, Eduardo Habkost wrote: > - Accept empty strings without aborting > - Use parse_uint*() to parse numbers > - Abort if anything except '-' or end-of-string is found after the first > number. > - Check for endvalue < value > > Also change the MAX_CPUMASK_BITS warning message from "A max of %d CPUs > are supported in a guest" to "qemu: NUMA: A max of %d VCPUs are > supported". > > Signed-off-by: Eduardo Habkost <[email protected]> > --- > Cc: Eric Blake <[email protected]> > --- > vl.c | 32 +++++++++++++++++++++++++++----- > 1 file changed, 27 insertions(+), 5 deletions(-) >
>
> - value = strtoull(cpus, &endptr, 10);
> + /* Empty CPU range strings will be considered valid, they will simply
> + * not set any bit in the CPU bitmap.
> + */
> + if (!*cpus) {
> + return;
Does the code behave correctly when there are no bits in the CPU bitmap,
or do you require that at least one bit be set?
> + }
> +
> + if (parse_uint(cpus, &value, &endptr) < 0) {
> + goto error;
Again, another case of accepting octal where you used to only accept
binary; if the change of interpretation of 010 is intentional, it would
be worth documenting in the commit message. Otherwise, it might be
worth refactoring 1/8 to add a 'base' parameter to parse_uint[_full] to
allow the caller to control whether they want base 0 or base 10.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
