diff --git a/lib/ringbuffer.c b/lib/ringbuffer.c index 60b0ea1..3f401f0 100644 --- a/lib/ringbuffer.c +++ b/lib/ringbuffer.c @@ -619,7 +619,11 @@ qb_rb_chunk_peek(struct qb_ringbuffer_s * rb, void **data_out, int32_t timeout) if (rb->notifier.post_fn) { (void)rb->notifier.post_fn(rb->notifier.instance, res); } - return 0; +#ifdef EBADMSG + return -EBADMSG; +#else + return -EINVAL; +#endif } chunk_size = QB_RB_CHUNK_SIZE_GET(rb, read_pt); *data_out = QB_RB_CHUNK_DATA_GET(rb, read_pt); diff --git a/tests/check_rb.c b/tests/check_rb.c index c54fdc2..cdd85ec 100644 --- a/tests/check_rb.c +++ b/tests/check_rb.c @@ -179,7 +179,8 @@ START_TEST(test_ring_buffer4) } for (i = 0; i < 2000; i++) { l = qb_rb_chunk_peek(t, (void **)&new_data, 0); - if (l == 0) { + if (l < 0) { + /* no more to read */ break; } ck_assert_int_eq(l, strlen(data));