diff options
author | Havoc Pennington <hp@redhat.com> | 2003-03-28 05:42:19 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-03-28 05:42:19 +0000 |
commit | bf99381351b802fb3348a24037898222aae631e2 (patch) | |
tree | aae0a9583e4d6aa559849e4326a3c9b2a7175015 /dbus/dbus-string.c | |
parent | 574c258bc9304d51bf0cdd131a6473e6fc5b477f (diff) |
2003-03-28 Havoc Pennington <hp@pobox.com>
* bus/test.c (bus_test_flush_bus): remove the sleep from here,
I think it may have just been superstition. Not sure.
* dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
failures that were not being handled.
* dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
* dbus/dbus-memory.c: add ability to set number of mallocs in a
row that will fail on out-of-memory.
* dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
function for testing out-of-memory handling.
* bus/config-loader-expat.c (memsuite): don't wrap the dbus
allocation functions, they do map exactly to the expat ones.
Diffstat (limited to 'dbus/dbus-string.c')
-rw-r--r-- | dbus/dbus-string.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index 1bc3e205..7549dcad 100644 --- a/dbus/dbus-string.c +++ b/dbus/dbus-string.c @@ -2108,15 +2108,22 @@ _dbus_string_base64_decode (const DBusString *source, */ if (pad_count < 1) - _dbus_string_append_byte (&result, - triplet >> 16); + { + if (!_dbus_string_append_byte (&result, + triplet >> 16)) + goto failed; + } if (pad_count < 2) - _dbus_string_append_byte (&result, - (triplet >> 8) & 0xff); + { + if (!_dbus_string_append_byte (&result, + (triplet >> 8) & 0xff)) + goto failed; + } - _dbus_string_append_byte (&result, - triplet & 0xff); + if (!_dbus_string_append_byte (&result, + triplet & 0xff)) + goto failed; sextet_count = 0; pad_count = 0; @@ -2136,6 +2143,11 @@ _dbus_string_base64_decode (const DBusString *source, _dbus_string_free (&result); return TRUE; + + failed: + _dbus_string_free (&result); + + return FALSE; } /** |