From 615fa679e1f8339d4f57e8b6dc49e7fb5da49f2d Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Mon, 17 Mar 2003 23:46:21 +0000 Subject: 2003-03-17 Havoc Pennington * dbus/dbus-internals.h: add gcc attributes so that our printf-style functions warn on bad arguments to format * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf format bug * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix printf format bug --- ChangeLog | 12 ++++++++++++ dbus/dbus-internals.h | 20 ++++++++++++++++++-- dbus/dbus-message.c | 2 +- dbus/dbus-sysdeps.c | 2 +- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a693fadb..aaa2cd6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2003-03-17 Havoc Pennington + + * dbus/dbus-internals.h: add gcc attributes so that + our printf-style functions warn on bad arguments to + format + + * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf + format bug + + * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix + printf format bug + 2003-03-17 Havoc Pennington * bus/test-main.c (main): make it print something as it runs diff --git a/dbus/dbus-internals.h b/dbus/dbus-internals.h index 559b38ec..e77c174c 100644 --- a/dbus/dbus-internals.h +++ b/dbus/dbus-internals.h @@ -37,10 +37,26 @@ DBUS_BEGIN_DECLS; +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) +#define _DBUS_GNUC_PRINTF( format_idx, arg_idx ) \ + __attribute__((__format__ (__printf__, format_idx, arg_idx))) +#define _DBUS_GNUC_SCANF( format_idx, arg_idx ) \ + __attribute__((__format__ (__scanf__, format_idx, arg_idx))) +#define _DBUS_GNUC_FORMAT( arg_idx ) \ + __attribute__((__format_arg__ (arg_idx))) +#define _DBUS_GNUC_NORETURN \ + __attribute__((__noreturn__)) +#else /* !__GNUC__ */ +#define _DBUS_GNUC_PRINTF( format_idx, arg_idx ) +#define _DBUS_GNUC_SCANF( format_idx, arg_idx ) +#define _DBUS_GNUC_FORMAT( arg_idx ) +#define _DBUS_GNUC_NORETURN +#endif /* !__GNUC__ */ + void _dbus_warn (const char *format, - ...); + ...) _DBUS_GNUC_PRINTF (1, 2); void _dbus_verbose_real (const char *format, - ...); + ...) _DBUS_GNUC_PRINTF (1, 2); #ifdef DBUS_ENABLE_VERBOSE_MODE diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 51a694aa..defa0585 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -2771,7 +2771,7 @@ _dbus_message_loader_queue_messages (DBusMessageLoader *loader) if (header_len + body_len > loader->max_message_size) { - _dbus_verbose ("Message claimed length header = %d body = %d exceeds max message length %d\n", + _dbus_verbose ("Message claimed length header = %d body = %d exceeds max message length %ld\n", header_len, body_len, loader->max_message_size); loader->corrupted = TRUE; return TRUE; diff --git a/dbus/dbus-sysdeps.c b/dbus/dbus-sysdeps.c index 5a79e8fc..d653b868 100644 --- a/dbus/dbus-sysdeps.c +++ b/dbus/dbus-sysdeps.c @@ -488,7 +488,7 @@ _dbus_connect_tcp_socket (const char *host, _dbus_result_from_errno (errno)); _dbus_verbose ("Failed to connect to socket %s: %s:%d\n", - host, port, _dbus_strerror (errno)); + host, _dbus_strerror (errno), port); close (fd); fd = -1; -- cgit