From: Timo Sirainen Date: Sat, 19 Nov 2016 00:32:21 +0000 (+0200) Subject: lib: Clarify that buffer_write() zero-fills buffer when writing past its size X-Git-Tag: 2.2.27~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=62a17f66bc2c11fef596345d67735e0dd10f2ff2;p=thirdparty%2Fdovecot%2Fcore.git lib: Clarify that buffer_write() zero-fills buffer when writing past its size --- diff --git a/src/lib/buffer.h b/src/lib/buffer.h index 57a3a201a5..786716b03e 100644 --- a/src/lib/buffer.h +++ b/src/lib/buffer.h @@ -42,7 +42,8 @@ pool_t buffer_get_pool(const buffer_t *buf) ATTR_PURE; /* Reset the buffer. used size and it's contents are zeroed. */ void buffer_reset(buffer_t *buf); -/* Write data to buffer at specified position. */ +/* Write data to buffer at specified position. If pos is beyond the buffer's + current size, it is zero-filled up to that point (even if data_size==0). */ void buffer_write(buffer_t *buf, size_t pos, const void *data, size_t data_size); /* Append data to buffer. */ diff --git a/src/lib/test-buffer.c b/src/lib/test-buffer.c index 2afdce6f5a..ad39e76aad 100644 --- a/src/lib/test-buffer.c +++ b/src/lib/test-buffer.c @@ -131,6 +131,17 @@ static void test_buffer_random(void) buffer_free(&buf); } +static void test_buffer_write(void) +{ + buffer_t *buf; + + test_begin("buffer_write"); + buf = buffer_create_dynamic(pool_datastack_create(), 8); + buffer_write(buf, 5, buf, 0); + test_assert(buf->used == 5); + test_end(); +} + static void test_buffer_set_used_size(void) { buffer_t *buf; @@ -263,6 +274,7 @@ static void test_buffer_truncate_bits(void) void test_buffer(void) { test_buffer_random(); + test_buffer_write(); test_buffer_set_used_size(); test_buffer_truncate_bits(); }