diff --git a/core/net/queuebuf.c b/core/net/queuebuf.c index c7dc7fe47..59f8f686b 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; @@ -389,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 */