From 85d7a8e4d7e192ab886633f0a223cc9abb47e506 Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Tue, 15 Jan 2008 14:43:19 -0500 Subject: add OOM handling in various places MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2008-01-15 John (J5) Palmieri * patches by Kimmo Hämäläinen * dbus/dbus-sysdeps-unix (_dbus_get_autolaunch_address): handle OOM (FDO Bug #12945) * dbus/dbus-uuidgen.c (return_uuid): handle OOM (FDO Bug #12928) * dbus/dbus-misc.c (dbus_get_local_machine_id): handle OOM, fix return value to return NULL not FALSE (FDO Bug #12946) --- ChangeLog | 12 ++++++++++++ dbus/dbus-misc.c | 7 +++++-- dbus/dbus-sysdeps-unix.c | 6 +++++- dbus/dbus-uuidgen.c | 8 +++++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b254f8ee..72e50337 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2008-01-15 John (J5) Palmieri + + * patches by Kimmo Hämäläinen + + * dbus/dbus-sysdeps-unix (_dbus_get_autolaunch_address): handle OOM + (FDO Bug #12945) + + * dbus/dbus-uuidgen.c (return_uuid): handle OOM (FDO Bug #12928) + + * dbus/dbus-misc.c (dbus_get_local_machine_id): handle OOM, fix return + value to return NULL not FALSE (FDO Bug #12946) + 2008-01-15 John (J5) Palmieri * bus/bus.c (bus_context_check_security_policy): rewrite selinux error diff --git a/dbus/dbus-misc.c b/dbus/dbus-misc.c index 22b7333e..758e1a02 100644 --- a/dbus/dbus-misc.c +++ b/dbus/dbus-misc.c @@ -76,12 +76,15 @@ dbus_get_local_machine_id (void) char *s; s = NULL; - _dbus_string_init (&uuid); + + if (!_dbus_string_init (&uuid)) + return NULL; + if (!_dbus_get_local_machine_uuid_encoded (&uuid) || !_dbus_string_steal_data (&uuid, &s)) { _dbus_string_free (&uuid); - return FALSE; + return NULL; } else { diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index c4866bbb..dfa71e7d 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -2777,7 +2777,11 @@ _dbus_get_autolaunch_address (DBusString *address, _DBUS_ASSERT_ERROR_IS_CLEAR (error); retval = FALSE; - _dbus_string_init (&uuid); + if (!_dbus_string_init (&uuid)) + { + _DBUS_SET_OOM (error); + return FALSE; + } if (!_dbus_get_local_machine_uuid_encoded (&uuid)) { diff --git a/dbus/dbus-uuidgen.c b/dbus/dbus-uuidgen.c index 0038cd74..6f226bce 100644 --- a/dbus/dbus-uuidgen.c +++ b/dbus/dbus-uuidgen.c @@ -48,7 +48,13 @@ return_uuid (DBusGUID *uuid, if (uuid_p) { DBusString encoded; - _dbus_string_init (&encoded); + + if (!_dbus_string_init (&encoded)) + { + _DBUS_SET_OOM (error); + return FALSE; + } + if (!_dbus_uuid_encode (uuid, &encoded) || !_dbus_string_steal_data (&encoded, uuid_p)) { -- cgit