From: Timo Sirainen Date: Mon, 20 Apr 2009 18:43:15 +0000 (-0400) Subject: array_idx_clear() was broken when clearing an index outside the existing array. X-Git-Tag: 2.0.alpha1~909 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=de71acb79504893762d1d31fac58e97ff663e83d;p=thirdparty%2Fdovecot%2Fcore.git array_idx_clear() was broken when clearing an index outside the existing array. --HG-- branch : HEAD --- diff --git a/src/lib/array.c b/src/lib/array.c index afa73b0d34..c324fada1d 100644 --- a/src/lib/array.c +++ b/src/lib/array.c @@ -35,7 +35,8 @@ void array_idx_clear_i(struct array *array, unsigned int idx) pos = idx * array->element_size; if (pos > array->buffer->used) { /* index doesn't exist yet, initialize with zero */ - buffer_append_zero(array->buffer, pos - array->buffer->used); + buffer_append_zero(array->buffer, pos - array->buffer->used + + array->element_size); } else { buffer_write_zero(array->buffer, pos, array->element_size); }