From 21cef58bc1b46ba4d5e7371463920c7744904d32 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 2 Apr 2003 21:52:38 +0000 Subject: 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. --- dbus/dbus-string.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'dbus') diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index dd5781fa..0bd754b3 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) -- cgit