From 21cef58bc1b46ba4d5e7371463920c7744904d32 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 2 Apr 2003 21:52:38 +0000 Subject: [PATCH] 2003-04-02 Havoc Pennington * dbus/dbus-string.c (set_length): fix a bug - we allocated max of current alloc and needed new length, not max of the doubled allocation and needed new length. Also, when building tests, don't do the double-allocation stuff, just realloc every time. --- ChangeLog | 7 +++++++ dbus/dbus-string.c | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e72e8a6..2340ba9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2003-04-02 Havoc Pennington + * dbus/dbus-string.c (set_length): fix a bug - we allocated max of + current alloc and needed new length, not max of the doubled + allocation and needed new length. Also, when building tests, + don't do the double-allocation stuff, just realloc every time. + +2003-04-02 Havoc Pennington + * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames in error messages (_dbus_string_get_dirname): new diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index dd5781f..0bd754b 100644 --- a/dbus/dbus-string.c +++ b/dbus/dbus-string.c @@ -361,8 +361,17 @@ set_length (DBusRealString *real, else new_allocated = real->allocated * 2; + /* if you change the code just above here, run the tests without + * the following before you commit + */ +#ifdef DBUS_BUILD_TESTS + new_allocated = 0; /* ensure a realloc every time so that we go + * through all malloc failure codepaths + */ +#endif + /* But be sure we always alloc at least space for the new length */ - new_allocated = MAX (real->allocated, new_length + ALLOCATION_PADDING); + new_allocated = MAX (new_allocated, new_length + ALLOCATION_PADDING); new_str = dbus_realloc (real->str - real->align_offset, new_allocated); if (new_str == NULL) -- 2.7.4