Skip to content
Snippets Groups Projects
Commit 05d887b4 authored by xypron.glpk@gmx.de's avatar xypron.glpk@gmx.de Committed by Tom Rini
Browse files

lib: circbuf: avoid possible null pointer dereference


We should not first dereference p and afterwards assert that is
was not NULL. Instead do the assert first.

The problem was indicated by cppcheck.

Signed-off-by: default avatarHeinrich Schuchardt <xypron.glpk@gmx.de>
parent 1275a44e
No related branches found
No related tags found
No related merge requests found
...@@ -41,11 +41,13 @@ int buf_free (circbuf_t * buf) ...@@ -41,11 +41,13 @@ int buf_free (circbuf_t * buf)
int buf_pop (circbuf_t * buf, char *dest, unsigned int len) int buf_pop (circbuf_t * buf, char *dest, unsigned int len)
{ {
unsigned int i; unsigned int i;
char *p = buf->top; char *p;
assert (buf != NULL); assert (buf != NULL);
assert (dest != NULL); assert (dest != NULL);
p = buf->top;
/* Cap to number of bytes in buffer */ /* Cap to number of bytes in buffer */
if (len > buf->size) if (len > buf->size)
len = buf->size; len = buf->size;
...@@ -69,11 +71,13 @@ int buf_push (circbuf_t * buf, const char *src, unsigned int len) ...@@ -69,11 +71,13 @@ int buf_push (circbuf_t * buf, const char *src, unsigned int len)
{ {
/* NOTE: this function allows push to overwrite old data. */ /* NOTE: this function allows push to overwrite old data. */
unsigned int i; unsigned int i;
char *p = buf->tail; char *p;
assert (buf != NULL); assert (buf != NULL);
assert (src != NULL); assert (src != NULL);
p = buf->tail;
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
*p++ = src[i]; *p++ = src[i];
if (p == buf->end) { if (p == buf->end) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment