From 051770e1869c87be34e226aef8cc38eb95b8e466 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Fri, 23 May 2014 09:27:01 -0400 Subject: [PATCH] Fix: refuse overwrite mode buffers with less than two subbuffers Fixes #793 Signed-off-by: Mathieu Desnoyers --- libringbuffer/ring_buffer_backend.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libringbuffer/ring_buffer_backend.c b/libringbuffer/ring_buffer_backend.c index 0d2cc6d0..7d3a3780 100644 --- a/libringbuffer/ring_buffer_backend.c +++ b/libringbuffer/ring_buffer_backend.c @@ -234,6 +234,12 @@ int channel_backend_init(struct channel_backend *chanb, return -EINVAL; if (!num_subbuf || (num_subbuf & (num_subbuf - 1))) return -EINVAL; + /* + * Overwrite mode buffers require at least 2 subbuffers per + * buffer. + */ + if (config->mode == RING_BUFFER_OVERWRITE && num_subbuf < 2) + return -EINVAL; ret = subbuffer_id_check_index(config, num_subbuf); if (ret) -- 2.34.1