summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/drivers/src/ringbuffer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/components/drivers/src/ringbuffer.c b/components/drivers/src/ringbuffer.c
index baeeea0e50..48bf590f8c 100644
--- a/components/drivers/src/ringbuffer.c
+++ b/components/drivers/src/ringbuffer.c
@@ -119,8 +119,11 @@ rt_size_t rt_ringbuffer_put_force(struct rt_ringbuffer *rb,
space_length = rt_ringbuffer_space_len(rb);
- if (length > space_length)
+ if (length > rb->buffer_size)
+ {
+ ptr = &ptr[length - rb->buffer_size];
length = rb->buffer_size;
+ }
if (rb->buffer_size - rb->write_index > length)
{