From 928bb498550f42e16419f637877ef16131476e49 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Mon, 10 Nov 2014 12:00:41 +0100 Subject: [PATCH 1/2] Added missing memb_free in queuebuf.c --- core/net/queuebuf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/core/net/queuebuf.c b/core/net/queuebuf.c index fa06561ef..f30f7d24e 100644 --- a/core/net/queuebuf.c +++ b/core/net/queuebuf.c @@ -366,6 +366,7 @@ queuebuf_new_from_packetbuf(void) #else if(buf->ram_ptr == NULL) { PRINTF("queuebuf_new_from_packetbuf: could not queuebuf data\n"); + memb_free(&bufmem, buf); return NULL; } buframptr = buf->ram_ptr; From c5ec342b8baa7451f629828fa40b39bb277c4486 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Mon, 10 Nov 2014 13:24:03 +0100 Subject: [PATCH 2/2] Fix deallocation in queuebuf.c, case where QUEUEBUF_STATS is set --- core/net/queuebuf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/net/queuebuf.c b/core/net/queuebuf.c index f30f7d24e..c1ee0a4cc 100644 --- a/core/net/queuebuf.c +++ b/core/net/queuebuf.c @@ -390,9 +390,9 @@ queuebuf_new_from_packetbuf(void) PRINTF("queuebuf len %d\n", queuebuf_len); printf("#A q=%d\n", queuebuf_len); if(queuebuf_len == queuebuf_max_len + 1) { - memb_free(&bufmem, buf); - queuebuf_len--; - return NULL; + queuebuf_free(buf); + queuebuf_len--; + return NULL; } #endif /* QUEUEBUF_STATS */