aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorxypron.glpk@gmx.de2017-05-03 23:20:10 +0200
committerTom Rini2017-05-05 16:45:57 -0400
commit05d887b4619e54a2b7d487ac1c31b4544ce58533 (patch)
treea7096fcd96ac176998753945e9fd73ac93ae9be3 /lib
parent1275a44e2f0579aba11d59c92c1717d5f9abc5e9 (diff)
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: Heinrich Schuchardt <xypron.glpk@gmx.de>
Diffstat (limited to 'lib')
-rw-r--r--lib/circbuf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/circbuf.c b/lib/circbuf.c
index 9848da3b7b6..6ed05164304 100644
--- a/lib/circbuf.c
+++ b/lib/circbuf.c
@@ -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;
@@ -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) {