X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=libringbuffer%2Ffrontend_api.h;h=140159739feebc954f68d39b33806e3778f4ca01;hb=15500a1bb134d6bbd409da5568308c2a41291928;hp=eea2a8db579686995d1c204995fdb4dcda51668b;hpb=3d3c3833d4d119acde0a3fdb2c472aea010cd7e7;p=lttng-ust.git diff --git a/libringbuffer/frontend_api.h b/libringbuffer/frontend_api.h index eea2a8db..14015973 100644 --- a/libringbuffer/frontend_api.h +++ b/libringbuffer/frontend_api.h @@ -167,6 +167,8 @@ int lib_ring_buffer_reserve(const struct lttng_ust_lib_ring_buffer_config *confi buf = shmp(handle, chan->backend.buf[ctx->cpu].shmp); else buf = shmp(handle, chan->backend.buf[0].shmp); + if (caa_unlikely(!buf)) + return -EIO; if (caa_unlikely(uatomic_read(&buf->record_disabled))) return -EAGAIN; ctx->buf = buf; @@ -253,10 +255,13 @@ void lib_ring_buffer_commit(const struct lttng_ust_lib_ring_buffer_config *confi struct commit_counters_hot *cc_hot = shmp_index(handle, buf->commit_hot, endidx); + if (caa_unlikely(!cc_hot)) + return; + /* * Must count record before incrementing the commit count. */ - subbuffer_count_record(config, &buf->backend, endidx, handle); + subbuffer_count_record(config, ctx, &buf->backend, endidx, handle); /* * Order all writes to buffer before the commit count update that will