diff options
Diffstat (limited to 'kernel/lib/ringbuffer.c')
-rw-r--r-- | kernel/lib/ringbuffer.c | 6 |
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; |