Skip to content

Commit

Permalink
lib: circbuf: avoid possible null pointer dereference
Browse files Browse the repository at this point in the history
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: Heinrich Schuchardt <[email protected]>
  • Loading branch information
xypron authored and trini committed May 5, 2017
1 parent 1275a44 commit 05d887b
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions lib/circbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@ int buf_free (circbuf_t * buf)
int buf_pop (circbuf_t * buf, char *dest, unsigned int len)
{
unsigned int i;
char *p = buf->top;
char *p;

assert (buf != NULL);
assert (dest != NULL);

p = buf->top;

/* Cap to number of bytes in buffer */
if (len > buf->size)
len = buf->size;
Expand All @@ -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. */
unsigned int i;
char *p = buf->tail;
char *p;

assert (buf != NULL);
assert (src != NULL);

p = buf->tail;

for (i = 0; i < len; i++) {
*p++ = src[i];
if (p == buf->end) {
Expand Down

0 comments on commit 05d887b

Please sign in to comment.