summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-03-17 23:46:21 +0000
committerHavoc Pennington <hp@redhat.com>2003-03-17 23:46:21 +0000
commit615fa679e1f8339d4f57e8b6dc49e7fb5da49f2d (patch)
tree83e861f5343463dec864153d8e90ddcc157f1eaa
parent1fbf6fa49c90010f3f255f60944920ef8908701c (diff)
2003-03-17 Havoc Pennington <hp@redhat.com>
* 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
-rw-r--r--ChangeLog12
-rw-r--r--dbus/dbus-internals.h20
-rw-r--r--dbus/dbus-message.c2
-rw-r--r--dbus/dbus-sysdeps.c2
4 files changed, 32 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a693fadb..aaa2cd6a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2003-03-17 Havoc Pennington <hp@redhat.com>
+ * 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 <hp@redhat.com>
+
* bus/test-main.c (main): make it print something as it runs
so make check doesn't look stuck
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;