
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