Avoid passing NULL to printf %s specifier

This commit is contained in:
John Levon 2009-01-15 17:54:20 +00:00
parent c7095a4b4c
commit 4d713eabf5
3 changed files with 18 additions and 5 deletions

View File

@ -1,3 +1,8 @@
Thu Jan 15 17:29:19 GMT 2009 John Levon <levon@movementarian.org>
* src/internal.h:
* src/libvirt.c: Avoid passing NULL to printf %s specifier
Thu Jan 15 15:11:35 GMT 2009 John Levon <levon@movementarian.org> Thu Jan 15 15:11:35 GMT 2009 John Levon <levon@movementarian.org>
* src/xend_internal.c: Improve xend_get error message * src/xend_internal.c: Improve xend_get error message

View File

@ -7,6 +7,7 @@
#include <errno.h> #include <errno.h>
#include <limits.h> #include <limits.h>
#include <verify.h>
#ifdef HAVE_SYS_SYSLIMITS_H #ifdef HAVE_SYS_SYSLIMITS_H
#include <sys/syslimits.h> #include <sys/syslimits.h>
@ -115,6 +116,13 @@
#define ATTRIBUTE_RETURN_CHECK #define ATTRIBUTE_RETURN_CHECK
#endif /* __GNUC__ */ #endif /* __GNUC__ */
/*
* Use this when passing possibly-NULL strings to printf-a-likes.
*/
#define NULLSTR(s) \
((void)verify_true(sizeof *(s) == sizeof (char)), \
(s) ? (s) : "(null)")
/** /**
* TODO: * TODO:
* *

View File

@ -852,10 +852,10 @@ do_open (const char *name,
" port %d\n" " port %d\n"
" path %s\n", " path %s\n",
name, name,
ret->uri->scheme, ret->uri->opaque, NULLSTR(ret->uri->scheme), NULLSTR(ret->uri->opaque),
ret->uri->authority, ret->uri->server, NULLSTR(ret->uri->authority), NULLSTR(ret->uri->server),
ret->uri->user, ret->uri->port, NULLSTR(ret->uri->user), ret->uri->port,
ret->uri->path); NULLSTR(ret->uri->path));
} else { } else {
DEBUG0("no name, allowing driver auto-select"); DEBUG0("no name, allowing driver auto-select");
} }
@ -1044,7 +1044,7 @@ virConnectOpenAuth(const char *name,
if (virInitialize() < 0) if (virInitialize() < 0)
return NULL; return NULL;
DEBUG("name=%s, auth=%p, flags=%d", name, auth, flags); DEBUG("name=%s, auth=%p, flags=%d", NULLSTR(name), auth, flags);
return do_open (name, auth, flags); return do_open (name, auth, flags);
} }