X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fbuffer-view.c;h=bab0559a9f079f02a6c46cb2812e437f864035b0;hb=a0377dfefe40662ba7d68617bce6ff467114136c;hp=6f674f4a9828f857ada1a5e2fc3038d00ba343ba;hpb=67d8e2ef48ea2cd334bf9efd90b58b976437a3cd;p=lttng-tools.git diff --git a/src/common/buffer-view.c b/src/common/buffer-view.c index 6f674f4a9..bab0559a9 100644 --- a/src/common/buffer-view.c +++ b/src/common/buffer-view.c @@ -8,7 +8,6 @@ #include #include #include -#include LTTNG_HIDDEN struct lttng_buffer_view lttng_buffer_view_init( @@ -18,6 +17,12 @@ struct lttng_buffer_view lttng_buffer_view_init( return view; } +LTTNG_HIDDEN +bool lttng_buffer_view_is_valid(const struct lttng_buffer_view *view) +{ + return view && view->data && view->size > 0; +} + LTTNG_HIDDEN struct lttng_buffer_view lttng_buffer_view_from_view( const struct lttng_buffer_view *src, size_t offset, @@ -25,15 +30,17 @@ struct lttng_buffer_view lttng_buffer_view_from_view( { struct lttng_buffer_view view = { .data = NULL, .size = 0 }; - assert(src); + LTTNG_ASSERT(src); if (offset > src->size) { - ERR("Attempt to create buffer view with invalid offset"); + ERR("Attempt to create buffer view from another view with invalid offset (offset > source size): source size = %zu, offset in source = %zu, length = %zd", + src->size, offset, len); goto end; } if (len != -1 && len > (src->size - offset)) { - ERR("Attempt to create buffer view with invalid length"); + ERR("Attempt to create buffer view from another view with invalid length (length > space left after offset in source): source size = %zu, offset in source = %zu, length = %zd", + src->size, offset, len); goto end; } @@ -50,15 +57,17 @@ struct lttng_buffer_view lttng_buffer_view_from_dynamic_buffer( { struct lttng_buffer_view view = { .data = NULL, .size = 0 }; - assert(src); + LTTNG_ASSERT(src); if (offset > src->size) { - ERR("Attempt to create buffer view with invalid offset"); + ERR("Attempt to create buffer view from a dynamic buffer with invalid offset (offset > source size): source size = %zu, offset in source = %zu, length = %zd", + src->size, offset, len); goto end; } if (len != -1 && len > (src->size - offset)) { - ERR("Attempt to create buffer view with invalid length"); + ERR("Attempt to create buffer view from a dynamic buffer with invalid length (length > space left after offset in source): source size = %zu, offset in source = %zu, length = %zd", + src->size, offset, len); goto end; }