# HG changeset patch # User john.levon@xxxxxxx # Date 1232032750 28800 # Node ID 0335828806b5b3855c8eeaee31446a7bd0c02974 # Parent e542223a4c52d978d4507de709f50885920a5b44 Avoid passing NULL to printf %s specifier This is non-portable. Signed-off-by: John Levon <john.levon@xxxxxxx> diff --git a/src/internal.h b/src/internal.h --- a/src/internal.h +++ b/src/internal.h @@ -7,6 +7,7 @@ #include <errno.h> #include <limits.h> +#include <verify.h> #ifdef HAVE_SYS_SYSLIMITS_H #include <sys/syslimits.h> @@ -115,6 +116,13 @@ #define ATTRIBUTE_RETURN_CHECK #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: * diff --git a/src/libvirt.c b/src/libvirt.c --- a/src/libvirt.c +++ b/src/libvirt.c @@ -864,10 +864,10 @@ do_open (const char *name, " port %d\n" " path %s\n", name, - ret->uri->scheme, ret->uri->opaque, - ret->uri->authority, ret->uri->server, - ret->uri->user, ret->uri->port, - ret->uri->path); + NULLSTR(ret->uri->scheme), NULLSTR(ret->uri->opaque), + NULLSTR(ret->uri->authority), NULLSTR(ret->uri->server), + NULLSTR(ret->uri->user), ret->uri->port, + NULLSTR(ret->uri->path)); } else { DEBUG0("no name, allowing driver auto-select"); } @@ -1056,7 +1056,7 @@ virConnectOpenAuth(const char *name, if (virInitialize() < 0) 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); } -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list