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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list