[libvirt] [PATCH 04/10] cgroup: Replace sscanf with virStrToLong_ll

Matthias Bolte matthias.bolte at googlemail.com
Wed Mar 31 12:05:55 UTC 2010


2010/3/31 Eric Blake <eblake at redhat.com>:
> On 03/30/2010 10:20 AM, Matthias Bolte wrote:
>> -    if (sscanf(strval, "%" SCNi64, value) != 1)
>> +    if (virStrToLong_ll(strval, NULL, 10, value) < 0)
>
> Oops.  You effectively changed from %lli to %lld, which means the string
> now has to be decimal, instead of octal or hex.  Did you mean to pass 0
> as the third argument?
>

Good catch. I didn't notice that it was using %lli actually.

But I think switching virCgroupGetValueI64 to %lld is no problem here.
Because virCgroupGetValueU64 already uses virStrToLong_ull with base =
10 and virCgroupSetValueI64 uses %lld in its virAsprintf call.

And I just noticed that virCgroupGetValueI64 is in an #if 0 block, so
its not used yet. So it's safe to change it.

Matthias




More information about the libvir-list mailing list