From: Havoc Pennington Date: Mon, 17 Mar 2003 23:46:21 +0000 (+0000) Subject: 2003-03-17 Havoc Pennington X-Git-Tag: dbus-0.6~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=615fa679e1f8339d4f57e8b6dc49e7fb5da49f2d;p=thirdparty%2Fdbus.git 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 --- diff --git a/ChangeLog b/ChangeLog index a693fadb1..aaa2cd6a7 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 559b38ec1..e77c174cb 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 51a694aa8..defa05858 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 5a79e8fcb..d653b868a 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;