summaryrefslogtreecommitdiff
path: root/kernel/lib/ringbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/lib/ringbuffer.c')
-rw-r--r--kernel/lib/ringbuffer.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/lib/ringbuffer.c b/kernel/lib/ringbuffer.c
index 9caf555..643e6b9 100644
--- a/kernel/lib/ringbuffer.c
+++ b/kernel/lib/ringbuffer.c
@@ -74,9 +74,11 @@ u32 ringbuffer_read(struct ringbuffer *rb, u8 *buffer, u32 len) {
}
read_len = min(len, read_len);
- memcpy(buffer, rb->buffer + rb->read_ptr, read_len);
+ if (buffer) {
+ memcpy(buffer, rb->buffer + rb->read_ptr, read_len);
+ buffer += read_len;
+ }
len -= read_len;
- buffer += read_len;
rb->read_ptr = (rb->read_ptr + read_len) % rb->buffer_size;
}
return orig_len - len;