X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fdynamic-buffer.c;h=c295a5d2eb378f58b557fdfa6c841de6667db810;hp=7184a3400888ce602c9ec59377ee9c426fc3a5ee;hb=1c6def05e37f4a8a828a94aa0ca0e6236877f26f;hpb=4270baeadb2802163c52af9afe7dc0640c9c78ef diff --git a/src/common/dynamic-buffer.c b/src/common/dynamic-buffer.c index 7184a3400..c295a5d2e 100644 --- a/src/common/dynamic-buffer.c +++ b/src/common/dynamic-buffer.c @@ -101,10 +101,22 @@ int lttng_dynamic_buffer_set_size(struct lttng_dynamic_buffer *buffer, } if (new_size > buffer->capacity) { + size_t original_size = buffer->size; + size_t original_capacity = buffer->capacity; + ret = lttng_dynamic_buffer_set_capacity(buffer, new_size); if (ret) { goto end; } + + /* + * Zero-initialize the space that was left in the buffer at the + * before we increased its capacity (original capacity - original size). + * The newly acquired capacity (new capacity - original capacity) + * is zeroed by lttng_dynamic_buffer_set_capacity(). + */ + memset(buffer->data + original_size, 0, + original_capacity - original_size); } else if (new_size > buffer->size) { memset(buffer->data + buffer->size, 0, new_size - buffer->size); } else {