From 733334917d6e6e455f1a0e007948fa1761b6a417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Cab=C3=A9?= Date: Wed, 11 Jun 2025 15:23:42 +0200 Subject: [PATCH] drivers: audio: dmic_nrfx: fix memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensure proper release of memory slab when dmm_buffer_in_release fails in the event_handler function. Signed-off-by: Benjamin Cabé --- drivers/audio/dmic_nrfx_pdm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/audio/dmic_nrfx_pdm.c b/drivers/audio/dmic_nrfx_pdm.c index b2fcb7abb86..7b426132adf 100644 --- a/drivers/audio/dmic_nrfx_pdm.c +++ b/drivers/audio/dmic_nrfx_pdm.c @@ -148,6 +148,7 @@ static void event_handler(const struct device *dev, const nrfx_pdm_evt_t *evt) drv_data->block_size, evt->buffer_released); if (ret < 0) { LOG_ERR("Failed to release buffer: %d", ret); + free_buffer(drv_data, mem_slab_buffer); return; } free_buffer(drv_data, mem_slab_buffer); @@ -172,6 +173,7 @@ static void event_handler(const struct device *dev, const nrfx_pdm_evt_t *evt) drv_data->block_size, evt->buffer_released); if (ret < 0) { LOG_ERR("Failed to release buffer: %d", ret); + free_buffer(drv_data, mem_slab_buffer); stop_pdm(drv_data); return; }