[libvirt] [PATCH v2 6/9] virConnectBaselineCPU public API implementation
Chris Lalancette
clalance at redhat.com
Thu Feb 11 19:37:06 UTC 2010
On 02/11/2010 02:20 PM, Jiri Denemark wrote:
>>> +char *
>>> +virConnectBaselineCPU(virConnectPtr conn,
>>> + const char **xmlCPUs,
>>> + unsigned int ncpus,
>>> + unsigned int flags)
>>> +{
>>> + unsigned int i;
>>> +
>>> + VIR_DEBUG("conn=%p, xmlCPUs=%p, ncpus=%u, flags=%u",
>>> + conn, xmlCPUs, ncpus, flags);
>>> + if (xmlCPUs) {
>>> + for (i = 0; i < ncpus; i++)
>>> + VIR_DEBUG("xmlCPUs[%u]=%s", i, xmlCPUs[i]);
>>
>> Hum ... what if xmlCPUs[i] == NULL ... we should not crash there
>> maybe this should be tested and that loop being done after
>> VIR_IS_CONNECT(conn) check and xmlCPUs == NULL check
>
> I think it's better to keep it just after the first debug print as the purpose
> of this loop is to print detailed data about arguments passed to
> virConnectBaselineCPU(). However, we shouldn't really crash there. I think
>
> xmlCPUs[i] ? xmlCPUs[i] : "(null)"
Well, in Linux, printf("%s", NULL) is generally safe (it prints "(null").
However, that is not portable, so there is a wrapper or something in the
libvirt code that does "safe" printing of NULL pointers. I can't quite
remember exactly what it's called, but take a look around.
--
Chris Lalancette
More information about the libvir-list
mailing list