summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2018-08-23 09:01:03 +0100
committerSimon McVittie <smcv@collabora.com>2018-08-30 17:36:29 +0100
commit2fe4efccf35bd573b91d56ebe6c803801c37b82e (patch)
tree474d62756fe51a048faee5b33a06dc1e9792f3c1
parent1a3e7704ec715ed02038ae26454eb5e745101cba (diff)
downloaddbus-2fe4efccf35bd573b91d56ebe6c803801c37b82e.tar.gz
Do not apply __attribute__((__malloc__)) to dbus_realloc()
As noted in GLib commit c879f50f, gcc's interpretation of the malloc attribute has become more strict over time, which could result in miscompilation. The new definition is that in addition to assuming that the returned memory block is newly-allocated, gcc now assumes that it does not contain any valid pointers. This is OK for uninitialized or zero-initialized memory returned by dbus_malloc() or dbus_malloc0(), but not valid for dbus_realloc(), which might be used for a dynamically-sized array of (structures containing) valid pointers. See https://gitlab.gnome.org/GNOME/glib/issues/1465 Signed-off-by: Simon McVittie <smcv@collabora.com> Reviewed-by: Philip Withnall <withnall@endlessm.com> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107741
-rw-r--r--dbus/dbus-memory.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/dbus/dbus-memory.h b/dbus/dbus-memory.h
index 4fd56bd6..c575b46f 100644
--- a/dbus/dbus-memory.h
+++ b/dbus/dbus-memory.h
@@ -48,7 +48,6 @@ DBUS_ALLOC_SIZE(1)
void* dbus_malloc0 (size_t bytes);
DBUS_EXPORT
-DBUS_MALLOC
DBUS_ALLOC_SIZE(2)
void* dbus_realloc (void *memory,
size_t bytes);