From 868e186fb79cd2fdcbcdcc725a94a1a1a17b7373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Sch=C3=B6ppach?= Date: Wed, 8 May 2024 09:46:25 +0200 Subject: [PATCH 1/2] Fix pnal_buf_free does nothing on non debug builds As asserts only are evaluated on debug builds their calls need to be free of side effects. In this case we leak all pbufs as they were never freed. --- src/ports/STM32Cube/pnal.c | 4 +++- src/ports/iMX8M/pnal.c | 4 +++- src/ports/rt-kernel/pnal.c | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ports/STM32Cube/pnal.c b/src/ports/STM32Cube/pnal.c index 7f7d3f6e..b485750b 100644 --- a/src/ports/STM32Cube/pnal.c +++ b/src/ports/STM32Cube/pnal.c @@ -299,7 +299,9 @@ pnal_buf_t * pnal_buf_alloc (uint16_t length) void pnal_buf_free (pnal_buf_t * p) { - CC_ASSERT (pbuf_free (p) == 1); + int ret = pbuf_free (p); + CC_UNUSED (ret); + CC_ASSERT (ret == 1); } uint8_t pnal_buf_header (pnal_buf_t * p, int16_t header_size_increment) diff --git a/src/ports/iMX8M/pnal.c b/src/ports/iMX8M/pnal.c index cf1efaad..c4e3f652 100644 --- a/src/ports/iMX8M/pnal.c +++ b/src/ports/iMX8M/pnal.c @@ -176,7 +176,9 @@ pnal_buf_t * pnal_buf_alloc (uint16_t length) void pnal_buf_free (pnal_buf_t * p) { - CC_ASSERT (pbuf_free (p) == 1); + int ret = pbuf_free (p); + CC_UNUSED (ret); + CC_ASSERT (ret == 1); } uint8_t pnal_buf_header (pnal_buf_t * p, int16_t header_size_increment) diff --git a/src/ports/rt-kernel/pnal.c b/src/ports/rt-kernel/pnal.c index 214ef7bf..9f84470d 100644 --- a/src/ports/rt-kernel/pnal.c +++ b/src/ports/rt-kernel/pnal.c @@ -368,8 +368,10 @@ pnal_buf_t * pnal_buf_alloc (uint16_t length) } void pnal_buf_free (pnal_buf_t * p) -{ - ASSERT (pbuf_free (p) == 1); +{ + int ret = pbuf_free (p); + (void)ret; + ASSERT (ret == 1); } uint8_t pnal_buf_header (pnal_buf_t * p, int16_t header_size_increment) From 85b7a421e65deba88ccecfab46cbbece81998238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Sch=C3=B6ppach?= Date: Wed, 8 May 2024 09:51:12 +0200 Subject: [PATCH 2/2] Use correct type --- src/ports/STM32Cube/pnal.c | 2 +- src/ports/iMX8M/pnal.c | 2 +- src/ports/rt-kernel/pnal.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ports/STM32Cube/pnal.c b/src/ports/STM32Cube/pnal.c index b485750b..a6ac3324 100644 --- a/src/ports/STM32Cube/pnal.c +++ b/src/ports/STM32Cube/pnal.c @@ -299,7 +299,7 @@ pnal_buf_t * pnal_buf_alloc (uint16_t length) void pnal_buf_free (pnal_buf_t * p) { - int ret = pbuf_free (p); + u8_t ret = pbuf_free (p); CC_UNUSED (ret); CC_ASSERT (ret == 1); } diff --git a/src/ports/iMX8M/pnal.c b/src/ports/iMX8M/pnal.c index c4e3f652..9a5d2343 100644 --- a/src/ports/iMX8M/pnal.c +++ b/src/ports/iMX8M/pnal.c @@ -176,7 +176,7 @@ pnal_buf_t * pnal_buf_alloc (uint16_t length) void pnal_buf_free (pnal_buf_t * p) { - int ret = pbuf_free (p); + u8_t ret = pbuf_free (p); CC_UNUSED (ret); CC_ASSERT (ret == 1); } diff --git a/src/ports/rt-kernel/pnal.c b/src/ports/rt-kernel/pnal.c index 9f84470d..aae7f007 100644 --- a/src/ports/rt-kernel/pnal.c +++ b/src/ports/rt-kernel/pnal.c @@ -369,7 +369,7 @@ pnal_buf_t * pnal_buf_alloc (uint16_t length) void pnal_buf_free (pnal_buf_t * p) { - int ret = pbuf_free (p); + u8_t ret = pbuf_free (p); (void)ret; ASSERT (ret == 1); }